home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / diskmags / 4671-5.790 / dmg-5659 / html3.txt < prev   
Text File  |  1996-07-22  |  375KB  |  8,948 lines

  1. HTML 3.0                                                       28th March 1995
  2.  
  3.    INTERNET DRAFT                                 Dave Raggett, W3C
  4.    Expires in six months                          email: <dsr@w3.org>
  5.  
  6.              HyperText Markup Language Specification Version 3.0
  7.  
  8.                        <draft-ietf-html-specv3-00.txt>
  9.  
  10. Status of this Memo
  11.  
  12.    This document is an Internet draft. Internet drafts are working
  13.    documents of the Internet Engineering Task Force (IETF), its areas
  14.    and its working groups. Note that other groups may also distribute
  15.    working information as Internet drafts.
  16.  
  17.    Internet Drafts are draft documents valid for a maximum of six
  18.    months and can be updated, replaced or obsoleted by other documents
  19.    at any time. It is inappropriate to use Internet drafts as reference
  20.    material or to cite them as other than as "work in progress".
  21.  
  22.    To learn the current status of any Internet draft please check the
  23.    "lid-abstracts.txt" listing contained in the Internet drafts shadow
  24.    directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  25.    munnari.oz.au (Pacific Rim), ds.internic.net (US East coast) or
  26.    ftp.isi.edu (US West coast). Further information about the IETF can
  27.    be found at URL: http://www.cnri.reston.va.us/
  28.  
  29.    Distribution of this document is unlimited. Please send comments to
  30.    the HTML working group (HTML-WG) of the Internet Engineering Task
  31.    Force (IETF) at <html-wg@wg.oclc.org>. Discussions of this group are
  32.    archived at URL: http://www.acl.lanl.gov/HTML-WG/archives.html.
  33.  
  34. Abstract
  35.  
  36.    The HyperText Markup Language (HTML) is a simple markup language
  37.    used to create hypertext documents that are portable from one
  38.    platform to another. HTML documents are SGML documents with generic
  39.    semantics that are appropriate for representing information from a
  40.    wide range of applications. HTML markup can represent hypertext
  41.    news, mail, documentation, and hypermedia; menus of options;
  42.    database query results; simple structured documents with inlined
  43.    graphics and hypertext views of existing bodies of information.
  44.  
  45.    This specification defines the capabilities of HTML version 3.0 and
  46.    provides additional capabilities over previous versions such as
  47.    tables, text flow around figures and math. It is backwards
  48.    compatible with HTML 2.0.
  49.  
  50.    [Link to Table of Contents]--
  51.  
  52. Dave Raggett                                                            Page 1
  53. HTML 3.0                                                       28th March 1995
  54.  
  55. Table of Contents
  56.  
  57.    1.  Introduction  ...................................................... 4
  58.  
  59.        a)  How to participate in refining HTML 3.0  ....................... 4
  60.  
  61.        b)  HTML 3.0 Overview  ............................................. 4
  62.  
  63.        c)  Transition strategy from HTML 2.0  ............................. 5
  64.  
  65.        d)  Design Guidelines for HTML 3.0  ................................ 6
  66.  
  67.    2.  Understanding HTML and MIME  ....................................... 9
  68.  
  69.    3.  Understanding HTML and SGML  ...................................... 10
  70.  
  71.    4.  The Structure of HTML 3.0 Documents  .............................. 15
  72.  
  73.    5.  The HEAD Element and Related Elements  ............................ 17
  74.  
  75.    6.  The BODY Elements  ................................................ 24
  76.  
  77.        a)  Banners  ...................................................... 26
  78.  
  79.        b)  Divisions  .................................................... 27
  80.  
  81.        c)  Heading Elements  ............................................. 29
  82.  
  83.        d)  Paragraphs  ................................................... 33
  84.  
  85.        e)  Line Breaks  .................................................. 36
  86.  
  87.        f)  Horizontal Tabs  .............................................. 38
  88.  
  89.        g)  Hypertext Links  .............................................. 40
  90.  
  91.        h)  Overview of Character-Level Elements  ......................... 44
  92.  
  93.            -   Information Type Elements  ................................ 46
  94.  
  95.            -   Font Style Elements  ...................................... 48
  96.  
  97.        i)  The IMG (Image) Element  ...................................... 50
  98.  
  99.        j)  Unordered Lists  .............................................. 53
  100.  
  101.        k)  Ordered Lists  ................................................ 59
  102.  
  103.        l)  Definition Lists  ............................................. 62
  104.  
  105.        m)  Figures  ...................................................... 69
  106.  
  107.        n)  Tables  ....................................................... 77
  108.  
  109. Dave Raggett                                                            Page 2
  110. HTML 3.0                                                       28th March 1995
  111.  
  112.        o)  Math -- missing entity names --  .............................. 92
  113.  
  114.        p)  Horizontal Rules  ............................................ 111
  115.  
  116.        q)  Preformatted Text  ........................................... 113
  117.  
  118.        r)  Admonishments  ............................................... 116
  119.  
  120.        s)  Footnotes  ................................................... 118
  121.  
  122.        t)  Block Quotes  ................................................ 120
  123.  
  124.        u)  The ADDRESS Element  ......................................... 122
  125.  
  126.        v)  Fill-out Forms  .............................................. 124
  127.  
  128.    7.  Special Characters  .............................................. 142
  129.  
  130.    8.  Security Considerations  ......................................... 145
  131.  
  132.    9.  HTML 3.0 Document Type Definition
  133.  
  134.        a)  The SGML Declaration  ........................................ 146
  135.  
  136.        b)  The Latin-1 Character Entities -- needs work  ................ 148
  137.  
  138.        c)  Math and Greek Entities -- under construction  ............... 154
  139.  
  140.        d)  HTML Icon Entities  .......................................... 156
  141.  
  142.        e)  The HTML 3.0 DTD  ............................................ 157
  143.  
  144.    10. Terms -- needs work  ............................................. 185
  145.  
  146.    11. References -- needs work  ........................................ 188
  147.  
  148.    12. Acknowledgements -- needs work  .................................. 189
  149.  
  150. Dave Raggett                                                            Page 3
  151. HTML 3.0                                                       28th March 1995
  152.  
  153. Introduction to HTML 3.0
  154.  
  155.    HyperText Markup Language (HTML) is a simple markup system used to
  156.    create hypertext documents that are portable from one platform to
  157.    another. HTML documents are SGML documents with generic semantics
  158.    that are appropriate for representing information from a wide range
  159.    of applications. HTML markup can represent hypertext news, mail,
  160.    documentation, and hypermedia; menus of options; database query
  161.    results; simple structured documents with in-lined graphics; and
  162.    hypertext views of existing bodies of information.
  163.  
  164.    HTML has been in use by the World-Wide Web (WWW) global information
  165.    initiative since 1990. The HTML 3.0 specification provides a number
  166.    of new features, and is broadly backwards compatible with HTML 2.0.
  167.    It is defined as an application of International Standard ISO
  168.    ISO8879:1986 Standard Generalized Markup Language (SGML). This
  169.    specificiation will be proposed as the Internet Media Type (RFC
  170.    1590) and MIME Content Type (RFC 1521) called "text/html;
  171.    version=3.0".
  172.  
  173. How to participate in refining HTML 3.0
  174.  
  175.    The process of refining HTML 3.0 into a formal standard will be
  176.    carried out by the IETF HTML working group. The World Wide Web
  177.    Organization is continuing to develop a freeware testbed browser for
  178.    HTML 3.0 ("Arena") to encourage people to try out the proposed
  179.    features. The discussion list for HTML 3.0 is www-html with html-wg
  180.    reserved for use by the IETF working group for detailed matters
  181.    relating to the formal specification. The process for developing
  182.    HTML 3.0 is open, and anyone who is interested and able to
  183.    contribute to this effort is welcome to join in.
  184.  
  185.    --Note: make mailing list names into hypertext links to their
  186.    archives and add info on how to join these lists--
  187.  
  188. HTML 3.0 Overview
  189.  
  190.    HTML 3.0 builds upon HTML 2.0 and provides full backwards
  191.    compatibility. Tables have been one of the most requested features,
  192.    with text flow around figures and math as runners up. Traditional
  193.    SGML table models, e.g. the CALS table model, are really complex.
  194.    The HTML 3.0 proposal for tables uses a lightweight style of markup
  195.    suitable for rendering on a very wide range of output devices,
  196.    including braille and speech synthesizers.
  197.  
  198.    HTML 3.0 introduces a new element: FIG for inline figures. This
  199.    provides for client-side handling of hotzones while cleanly catering
  200.    for non-graphical browsers. Text can be flowed around figures and
  201.    you can control when to break the flow to begin a new element.
  202.  
  203.    Including support for equations and formulae in HTML 3.0 adds
  204.    relatively little complexity to a browser. The proposed format is
  205.    strongly influenced by TeX. Like tables, the format uses a
  206.  
  207. Dave Raggett                                                            Page 4
  208. HTML 3.0                                                       28th March 1995
  209.  
  210.    lightweight style of markup - simple enough to type in by hand,
  211.    although it will in most cases be easier to use a filter from a word
  212.    processing format or a direct HTML 3.0 wysiwyg editor. The level of
  213.    support is compatible with most word processing software, and avoids
  214.    the drawbacks from having to convert math to inline images.
  215.  
  216.    The Web has acted as a huge exercise in user testing, and we have
  217.    been able to glean lots of information from the ways people abuse
  218.    HTML in trying to get a particular effect; as well as from explicit
  219.    demand for new features. HTML 3.0, as a result, includes support for
  220.    customised lists; fine positioning control with entities like
  221.    &emspace; horizontal tabs and horizontal alignment of headers and
  222.    paragraph text.
  223.  
  224.    Additional features include a static banner area for corporate
  225.    logos, disclaimers and customized navigation/search controls. The
  226.    LINK element can be used to provide standard toolbar/menu items for
  227.    navigation, such as previous and next buttons. The NOTE element is
  228.    used for admonishments such as notes, cautions or warnings, and also
  229.    used for footnotes.
  230.  
  231.    Forms have been extended to support graphical selection menus with
  232.    client-side handling of events similar to FIG. Other new form field
  233.    types include range controls, scribble on image, file upload and
  234.    audio input fields. Client-side scripting of forms is envisaged with
  235.    the script attribute of the FORM element. Forms and tables make for
  236.    a powerful combination offering rich opportunities for laying out
  237.    custom interfaces to remote information systems.
  238.  
  239.    To counter the temptation to add yet more presentation features,
  240.    HTML 3.0 is designed (but doesn't require) to be used together with
  241.    style sheets which give rich control over document rendering, and
  242.    can take into account the user's preferences, the window size and
  243.    other resource limitations, such as which fonts are actually
  244.    available. This work will eventually lead to smart layout under the
  245.    author's control, with rich magazine style layouts for full screen
  246.    viewing, switching to simpler layouts when the window is shrunk.
  247.  
  248.    The SGML Open consortium is promoting use of DSSSL Lite by James
  249.    Clark. This is a simplified subset of DSSSL - the document style
  250.    semantics specification language. DSSSL is a ISO standard for
  251.    representing presentation semantics for SGML documents, but is much
  252.    too complex in its entirety to be well suited to the World Wide Web.
  253.    Hσkon Lie maintains a list of pointers to work on style sheets.
  254.  
  255. Transition Strategy from HTML 2.0
  256.  
  257.    The use of the MIME content type: "text/html; version=3.0" is
  258.    recommended to prevent existing HTML 2.0 user agents screwing up by
  259.    attempting to show 3.0 documents. Tests have shown that the
  260.    suggested content type will safely cause existing user agents to
  261.    display the save to file dialog rather than incorrectly displaying
  262.    the document as if it were HTML 2.0.
  263.  
  264. Dave Raggett                                                            Page 5
  265. HTML 3.0                                                       28th March 1995
  266.  
  267.    To make it easy for servers to distinguish 3.0 documents from 2.0
  268.    documents, it is suggested that 3.0 files are saved with the
  269.    extension ".html3" (or ".ht3" for PCs). Servers can also exploit the
  270.    accept headers in HTTP requests from HTML user agents, to
  271.    distinguish whether each client can or cannot support HTML 3.0. This
  272.    makes it practical for information providers to start providing HTML
  273.    3.0 versions of existing documents for newer user agents, without
  274.    impacting older user agents. It is envisaged that programs will be
  275.    made available for automatic down conversion of 3.0 to 2.0
  276.    documents. This conversion could be carried out in batch mode, or on
  277.    the fly (with caching for greater efficiency).
  278.  
  279. Design Guidelines
  280.  
  281.    The HTML 3.0 draft specification has been written to the following
  282.    guidelines.
  283.  
  284. Lingua Franca for the Web
  285.  
  286.    HTML is intended as a common medium for tying together information
  287.    from widely different sources. A means to rise above the
  288.    interoperability problems with existing document formats, and a
  289.    means to provide a truly open interface to proprietary information
  290.    systems.
  291.  
  292. Simplicity
  293.  
  294.    The first version of HTML was designed to be extremely simple, both
  295.    to author and to write browsers for. This has played a major role in
  296.    the incredibly rapid growth of the World Wide Web. HTML 3.0 provides
  297.    a clean superset of HTML 2.0 adding high value features such as
  298.    tables, text flow around figures and math, while still remaining a
  299.    simple document format. The pressures to adopt the complexities of
  300.    traditional SGML applications has been resisted, for example the
  301.    Department of Defense's CALS table model or the ISO 12083 math DTD.
  302.  
  303. Scaleability
  304.  
  305.    As time goes by, people's expectations change, and more will be
  306.    demanded of HTML. One manifestation of this is the pressure to add
  307.    yet more tags. HTML 3.0 introduces a means for subclassing elements
  308.    in an open-ended way. This can be used to distinguish the role of a
  309.    paragraph element as being a couplet in a stansa, or a mathematical
  310.    term as being a tensor. This ability to make fresh distinctions can
  311.    be exploited to impart distinct rendering styles or to support
  312.    richer search mechanisms, without further complicating the HTML
  313.    document format itself. Scaleability is also achieved via URI based
  314.    links for embedding information in other formats. Initially limited
  315.    to a few image formats, inline support is expected to rapidly evolve
  316.    to cover drawing formats, video, distributed virtual reality and a
  317.    general means for embedding other applications.
  318.  
  319. Dave Raggett                                                            Page 6
  320. HTML 3.0                                                       28th March 1995
  321.  
  322. Platform Independence
  323.  
  324.    HTML is designed to allow rendering on a very wide range of devices,
  325.    from clunky teletypes, to terminals, DOS, Windows, Macs and high end
  326.    Workstations, as well as non-visual media such as speech and
  327.    braille. In this, it allows users to exploit the legacy of older
  328.    equipment as well as the latest and best of new machines. HTML 3.0
  329.    provides for improved support for non-graphical clients, allowing
  330.    for rich markup in place of the figures shown on graphical clients.
  331.    HTML can be rendered on a wide variety of screen sizes, using a
  332.    scrolling or paged model. The fonts and presentation can be adjusted
  333.    to suit the resources available in the host machine and the user's
  334.    preferences.
  335.  
  336. Content --not-- Presentation Markup
  337.  
  338.    Information providers are used to tight control over the final
  339.    appearence of documents. The need for platform independence weighs
  340.    against this, but there is still a strong pressure to find
  341.    appropriate means for information providers to express their
  342.    intentions. The experience with proprietary document formats has
  343.    shown the dangers of mixing presentation markup with content (or
  344.    structural) markup. It becomes difficult to apply different
  345.    presentation styles. It becomes painful to incorporate material from
  346.    different sources (with different presentation styles). It becomes
  347.    difficult to be truly platform independent. As a result, HTML 3.0 is
  348.    designed for use with linked style information that defines the
  349.    intended presentation style for each element. Style sheets can be
  350.    expressed in a platform independent fashion or used to provide more
  351.    detailed control for particular classes of clients or output media.
  352.  
  353. Support for Cascaded Style Sheets
  354.  
  355.    For the Web, it is valuable to allow for a cascading of style
  356.    preferences. The client has certain built-in preferences; the
  357.    publisher may require a particular house style, e.g. for brand
  358.    distinction; the author may feel the need to override the house
  359.    style for special cases; the end-user may feel strongly about
  360.    certain things, e.g. large fonts for easier visibility or avoiding
  361.    certain colors due to an inability to distinguish between them. HTML
  362.    3.0 supports style sheets via the use of the LINK element to
  363.    reference a style sheet with a URI. Authors can place overrides in
  364.    separate style sheets or include them in the document head within
  365.    the STYLE element. The effectiveness of caching mechanisms for
  366.    speeding up the retrieval of style sheets is enhanced by the
  367.    separation of style information into generic commonly used style
  368.    sheets, and overrides specific to this document.
  369.  
  370. Support for Non-Visual Media
  371.  
  372.    HTML 3.0 is designed to cater for the needs of the visually
  373.    impaired. Markup for inline figures includes support for rich
  374.    descriptions, along with hypertext links that double up as defining
  375.  
  376. Dave Raggett                                                            Page 7
  377. HTML 3.0                                                       28th March 1995
  378.  
  379.    geometric hotzones for graphical browsers, simplifying the author's
  380.    job in catering for the different groups of users. Table markup
  381.    includes provision for abbreviated row and column names for each
  382.    cell, which are essential for conversion to speech or braille. Math
  383.    markup treats formulae and equations as hierarchies of expressions.
  384.    This allows disambiguating pauses to be inserted in appropriate
  385.    places during conversion to speech.
  386.  
  387. Support for different ways of creating HTML
  388.  
  389.    HTML 3.0 has been designed to be created in a variety of different
  390.    ways. It is deliberately simple enough to type in by hand. It can be
  391.    authored using wysiwyg editors for HTML, or it can be generated via
  392.    export filters from common word processing formats, or other SGML
  393.    applications.
  394.  
  395. Dave Raggett                                                            Page 8
  396. HTML 3.0                                                       28th March 1995
  397.  
  398. Understanding HTML and MIME
  399.  
  400.    --I have dropped the differentiation of HTML into a sequence of
  401.    conformance levels. Many people confused levels with versions. The
  402.    different levels also encourage interoperability problems! Lets
  403.    encourage full conformance with HTML 2.0 or HTML 3.0 rather than
  404.    perpetuating intermediate levels of support.--
  405.  
  406. HTML as an Internet Media Type
  407.  
  408.    This (and upward compatible specifications) define the Internet
  409.    Media Type (RFC 1590) and MIME Content Type (RFC 1521) called
  410.    "text/html". The type "text/html" accepts the following parameters:
  411.  
  412.    Version
  413.        To help avoid future compatibility problems, the version
  414.        parameter may be used to give the version number of the
  415.        specification to which the document conforms. The version number
  416.        appears at the front of this document and within the public
  417.        identifier for the SGML DTD. This specification defines version
  418.        3.0.
  419.  
  420.    Character sets
  421.        The charset parameter (as defined in section 7.1.1 of RFC 1521)
  422.        may be used with the text/html content type to specify the
  423.        encoding used to represent the HTML document as a sequence of
  424.        bytes. Normally, text/* media types specify a default of
  425.        US-ASCII for the charset parameter. However, for text/html, if
  426.        the byte stream contains data that is not in the 7-bit US-ASCII
  427.        set, the HTML interpreting agent should assume a default charset
  428.        of ISO-8859-1.
  429.  
  430.        When an HTML document is encoded using US-ASCII, the mechanisms
  431.        of numeric character references and character entity references
  432.        may be used to encode additional characters from ISO-8859-1.
  433.        Character entity references are needed for symbols such as math
  434.        and greek characters from other unspecified character sets.
  435.  
  436.        Other values for the charset parameter are not defined in this
  437.        specification, but may be specified in future versions of HTML.
  438.        It is envisioned that HTML will use the charset parameter to
  439.        allow support for non-Latin characters such as Arabic, Hebrew,
  440.        Cyrillic and Japanese, rather than relying on any SGML mechanism
  441.        for doing so.
  442.  
  443.        --What about Unicode and its assorted encodings? This section
  444.        would benefit from an explanation of the issues underlying
  445.        support for multiple character sets and the problems arising
  446.        from bidirectionality.--
  447.  
  448. Dave Raggett                                                            Page 9
  449. HTML 3.0                                                       28th March 1995
  450.  
  451. Understanding HTML and SGML
  452.  
  453.    HTML is an application conforming to International Standard ISO 8879
  454.    -- Standard Generalized Markup Language (SGML). SGML is a system for
  455.    defining structured document types, and markup languages to
  456.    represent instances of those document types. The SGML declaration
  457.    for HTML is given in SGML Declaration for HTML. It is implicit among
  458.    WWW implementations.
  459.  
  460.    In the event of any apparent conflict between HTML and SGML
  461.    standards, the SGML standard is definitive.
  462.  
  463.    Every SGML document has three parts:
  464.  
  465.    SGML declaration
  466.        Binds SGML processing quantities and syntax token names to
  467.        specific values. For example, the SGML declaration in the HTML
  468.        DTD specifies that the string that opens an end tag is </ and
  469.        the maximum length of a name is 72 characters.
  470.  
  471.    Prologue
  472.        Includes one or more document type declarations (DTDs), which
  473.        specify the element types, element relationships and attributes.
  474.        The HTML 3.0 DTD provides a definitive specification of the
  475.        allowed syntax for HTML 3.0 documents.
  476.  
  477.    References
  478.        Can be represented by markup. An instance, which contains the
  479.        data and markup of the document.
  480.  
  481.    HTML refers to the document type as well as the markup language for
  482.    representing instances of that document type.
  483.  
  484. ------------------------------------------------------------------------------
  485. Understanding HTML Elements
  486.  
  487.    In HTML documents, tags define the start and end of headings,
  488.    paragraphs, lists, character highlighting and links. Most HTML
  489.    elements are identified in a document as a start tag, which gives
  490.    the element name and attributes, followed by the content, followed
  491.    by the end tag. Start tags are delimited by < and >, and end tags
  492.    are delimited by </ and >. For example:
  493.  
  494.        <H1>This is a Heading</H1>
  495.        <P>This is a paragraph.
  496.  
  497.    Some elements appear as just a start tag. For example, to create a
  498.    line break, you use <BR>. Additionally, the end tags of some other
  499.    elements (e.g. P, LI, DT, DD) can be omitted as the position of the
  500.    end tag is clearly implied by the context.
  501.  
  502.    The content of an element is a sequence of characters and nested
  503.    elements. Some elements, such as anchors, cannot be nested. Anchors
  504.  
  505. Dave Raggett                                                           Page 10
  506. HTML 3.0                                                       28th March 1995
  507.  
  508.    and character highlighting may be put inside other constructs. The
  509.    content model for a tag defines the syntax permitted for the
  510.    content.
  511.  
  512.    Note: The SGML declaration for HTML specifies SHORTTAG YES, which
  513.    means that there are other valid syntaxes for tags, such as NET
  514.    tags, <EM/.../; empty start tags, <>; and empty end tags, </>. Until
  515.    support for these idioms is widely deployed, their use is strongly
  516.    discouraged.
  517.  
  518. ------------------------------------------------------------------------------
  519. Names
  520.  
  521.    The element name immediately follows the tag open delimiter. An
  522.    element name consist of a letter followed by up to 72 letters,
  523.    digits, periods, or hyphens. Names are not case sensitive. For
  524.    example, H1 is equivalent to h1. This limit of 72 characters is set
  525.    by the NAMELEN parameter in the SGML declaration for HTML 3.0.
  526.  
  527. ------------------------------------------------------------------------------
  528. Attributes
  529.  
  530.    In a start tag, white space and attributes are allowed between the
  531.    element name and the closing delimiter. An attribute typically
  532.    consists of an attribute name, an equal sign, and a value (although
  533.    some attributes may be just a value). White space is allowed around
  534.    the equal sign.
  535.  
  536.    The value of the attribute may be either:
  537.  
  538.    1.  A string literal, delimited by single quotes or double quotes
  539.  
  540.    2.  A name token (a sequence of letters, digits, periods, or
  541.        hyphens)
  542.  
  543.    In this example, a is the element name, href is the attribute name,
  544.    and http://host/dir/file.html is the attribute value:
  545.  
  546.        <A HREF="http://host/dir/file.html">
  547.  
  548.    Some implementations consider any occurrence of the > character to
  549.    signal the end of a tag. For compatibility with such
  550.    implementations, when > appears in an attribute value, you may want
  551.    to represent it with an entity or numeric character reference, such
  552.    as:
  553.  
  554.        <IMG SRC="eq1.ps" alt="a > b">
  555.  
  556.    To put quotes inside of quotes, you can use single quotes if the
  557.    outer quotes are double or vice versa, as in:
  558.  
  559.        <IMG SRC="image.ps" alt="First 'real' example">
  560.  
  561. Dave Raggett                                                           Page 11
  562. HTML 3.0                                                       28th March 1995
  563.  
  564.    Alternatively, you use the character representation " as in:
  565.  
  566.        <IMG SRC="image.ps" alt="First "real" example">
  567.  
  568.    The length of an attribute value (after replacing entity and numeric
  569.    character references) is limited to 1024 characters. This number is
  570.    defined by the LITLEN parameter in the SGML declaration for HTML
  571.    3.0.
  572.  
  573.    Note: Some implementations allow any character except space or > in
  574.    a name token. Attributes values must be quoted only if they don't
  575.    satisfy the syntax for a name token.
  576.  
  577.    Attributes with a declared value of NAME (e.g. ISMAP, COMPACT) may
  578.    be written using a minimized syntax. The markup:
  579.  
  580.        <UL COMPACT="compact">
  581.  
  582.    can be written as:
  583.  
  584.        <UL COMPACT>
  585.  
  586.    Note: Unless you use the minimized syntax, some implementations
  587.    won't understand.
  588.  
  589. ------------------------------------------------------------------------------
  590. Undefined Tag and Attribute Names
  591.  
  592.    It is an accepted networking principle to be conservative in that
  593.    which one produces, and liberal in that which one accepts. HTML
  594.    parsers should be liberal except when verifying code. HTML
  595.    generators should generate strictly conforming HTML. It is suggested
  596.    that where ever practical, parsers should at least flag the presence
  597.    of markup errors, as this will help to avoid bad markup being
  598.    produced inadvertently.
  599.  
  600.    The behavior of WWW applications reading HTML documents and
  601.    discovering tag or attribute names which they do not understand
  602.    should be to behave as though, in the case of a tag, the whole tag
  603.    had not been there but its content had, or in the case of an
  604.    attribute, that the attribute had not been present.
  605.  
  606. ------------------------------------------------------------------------------
  607. Special Characters
  608.  
  609.    The characters between the tags represent text in the ISO-Latin-1
  610.    character set, which is a superset of ASCII. Because certain
  611.    characters will be interpreted as markup, they should be represented
  612.    by markup -- entity or numeric character references, for instance
  613.    the character "&" must be represented by the entity &. See the
  614.    Special Characters section of this specification for more
  615.    information.
  616.  
  617. Dave Raggett                                                           Page 12
  618. HTML 3.0                                                       28th March 1995
  619.  
  620. ------------------------------------------------------------------------------
  621. Comments
  622.  
  623.    To include comments in an HTML document that will be ignored by the
  624.    parser, surround them with <!-- and -->. After the comment
  625.    delimiter, all text up to the next occurrence of --> is ignored.
  626.    Hence comments cannot be nested. White space is allowed between the
  627.    closing -- and >, but not between the opening <! and --.
  628.  
  629.    For example:
  630.  
  631.    <HEAD>
  632.    <TITLE>HTML Guide: Recommended Usage</TITLE>
  633.    <!-- Id: Text.html,v 1.6 1994/04/25 17:33:48 connolly Exp -->
  634.    </HEAD>
  635.  
  636.    Note: Some historical implementations incorrectly consider a > sign
  637.    to terminate a comment.
  638.  
  639. ------------------------------------------------------------------------------
  640. Formal Variants of HTML 3.0
  641.  
  642.    The HTML 3.0 document type definition includes two flags for
  643.    controlling how prescriptive or how lax the language is. This makes
  644.    use of SGML marked sections in the DTD to enable or disable certain
  645.    features.
  646.  
  647. HTML.Recommended
  648.  
  649.    Certain features of the language are necessary for compatibility
  650.    with widespread usage, but they may compromise the structural
  651.    integrity of a document. The HTML.Recommended entity should be
  652.    defined as INCLUDE in the DTD subset to enable a more prescriptive
  653.    version of HTML 3.0 that eliminates the above features. For example:
  654.  
  655.    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN"
  656.    [ <!ENTITY % HTML.Recommended "INCLUDE"> ] >
  657.  
  658.    In particular, this prevents text from appearing except within block
  659.    elements.
  660.  
  661. HTML.Deprecated
  662.  
  663.    By default, for backwards compatibility, the %HTML.Deprecated entity
  664.    is defined as INCLUDE, enabling certain features which are now
  665.    deprecated. These features can be eliminated by defining this entity
  666.    as IGNORE in the DTD subset. For example:
  667.  
  668.        <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN" [
  669.    <!ENTITY % HTML.Deprecated "IGNORE"> ] >
  670.  
  671.    Note: defining %HTML.Recommended as INCLUDE automatically sets
  672.    %HTML.Deprecated to IGNORE.
  673.  
  674. Dave Raggett                                                           Page 13
  675. HTML 3.0                                                       28th March 1995
  676.  
  677.    In the spirit of being liberal in what you accept and strict in what
  678.    you generate, HTML user agents are recommended to accept syntax
  679.    corresponding to the specification with %HTML.Deprecated turned on,
  680.    while HTML user agents generating HTML are recommended to generate
  681.    documents that conform to the specification with %HTML.Recommended
  682.    turned on.
  683.  
  684. Dave Raggett                                                           Page 14
  685. HTML 3.0                                                       28th March 1995
  686.  
  687. The Structure of HTML 3.0 Documents
  688.  
  689.    In HTML documents, tags define the start and end of headings,
  690.    paragraphs, lists, character highlighting and links etc. Most HTML
  691.    elements are identified in a document as a start tag, which gives
  692.    the element name and attributes, followed by the content, followed
  693.    by the end tag. Start tags are delimited by < and >, while end tags
  694.    are delimited by </ and >. For example:
  695.  
  696.        <title>This is a Title</title>
  697.        <h1>This is a Heading</h1>
  698.        <P>This is a paragraph.
  699.  
  700.    Every HTML document as a minimum must have a title. To identify the
  701.    document as being HTML 3.0, it is recommended that documents start
  702.    with the prologue:
  703.  
  704.        <!doctype HTML public "-//W3O//DTD W3 HTML 3.0//EN">
  705.  
  706.    When absent, this prologue is implied by the MIME content type for
  707.    HTML 3.0 together with the associated version parameter.
  708.  
  709. ------------------------------------------------------------------------------
  710. Document Structure
  711.  
  712.    HTML 3.0 documents formally have the following structure:
  713.  
  714.        <HTML>
  715.        <HEAD> --head elements ...--
  716.        <BODY> --body elements ...--
  717.        </HTML>
  718.  
  719.    In most cases, the HTML, HEAD and BODY tags can be safely omitted.
  720.    Note that the formal syntax of HTML 3.0 is defined by the document
  721.    type definition, which is included as an appendix of this
  722.    specification. The details of the HEAD and BODY elements will be
  723.    described in subsequent sections.
  724.  
  725.    The permitted syntax of HTML 3.0 compliant documents is specified by
  726.    the DTD. This includes the content model for each element, defining
  727.    what markup is permitted within each element. The DTD uses SGML
  728.    entities in content models to express regular features of HTML 3.0,
  729.    for example %body.content defines what markup is permitted within
  730.    the BODY element. A number of other elements also share this content
  731.    model, e.g. BQ, DIV, FORM, TH and TD.
  732.  
  733.    The description of each tag includes the --content model-- and the
  734.    --permitted context-- (which elements can contain this tag). Where
  735.    practical, these properties are given with the same entity names as
  736.    used in the DTD, and should help the newcomer to get to grips with
  737.    understanding the DTD itself. For example, the description of the
  738.    NOTE element starts with:
  739.  
  740. Dave Raggett                                                           Page 15
  741. HTML 3.0                                                       28th March 1995
  742.  
  743.        The NOTE element
  744.  
  745.        Permitted context: %block
  746.        Content model: %flow
  747.  
  748.    This says that the NOTE element (used for admonishments such as
  749.    notes, cautions and errors) can occur in any element which includes
  750.    %block in its content model. Similarly, any element with %flow as
  751.    part of its permitted context can occur within a NOTE element.
  752.  
  753. The HTML element
  754.  
  755.    This has three attributes:
  756.  
  757.    VERSION
  758.        This is fixed by the DTD as the string "-//W3O//DTD W3 HTML
  759.        3.0//EN"
  760.  
  761.    URN
  762.        The universal resource name for the document (optional)
  763.  
  764.    ROLE
  765.        An optional space separated list of SGML NAME tokens that define
  766.        the role this document plays, e.g. table of contents. The
  767.        conventions for these names are outside the scope of this
  768.        specification. --wouldn't it be better to leave this to a link
  769.        to a URC?--
  770.  
  771.    Note that both the start and end tag for the HTML element can be
  772.    omitted.
  773.  
  774. Dave Raggett                                                           Page 16
  775. HTML 3.0                                                       28th March 1995
  776.  
  777. The Head Element and Related Elements
  778.  
  779. HEAD
  780.  
  781.    The HEAD element has no attributes and the start and end tag can
  782.    always be safely omitted as they can be readily inferred by the
  783.    parser. Information in the HEAD element corresponds to the top part
  784.    of a memo or mail message. It describes properties of the document
  785.    such as the title, the document toolbar, and additional
  786.    meta-information. There is no intended significance to the order of
  787.    elements in the document head. Note that the TITLE element is always
  788.    required. In fact, the minimal HTML 3.0 document consists of the
  789.    TITLE element alone!
  790.  
  791.    Within the HEAD element, only certain elements are allowed.
  792.    Information in the HEAD element may include the following elements
  793.    (arranged alphabetically):
  794.  
  795. ------------------------------------------------------------------------------
  796. BASE
  797.  
  798.    The BASE element allows the URL of the document itself to be
  799.    recorded in situations in which the document may be read out of
  800.    context. URLs within the document may be in a "partial" form
  801.    relative to this base address. The default base address is the URL
  802.    used to retrieve the document.
  803.  
  804.    For example:
  805.  
  806.        <base href="http://acme.com/docs/mydoc.html">
  807.        ...
  808.        <img src="images/me.gif">
  809.  
  810.    which resolves to "http://acme.com/docs/images/me.gif".
  811.  
  812. ------------------------------------------------------------------------------
  813. ISINDEX
  814.  
  815.    The ISINDEX element informs the HTML user agent that the document is
  816.    an index document. As well as reading it, the reader may use a
  817.    keyword search.
  818.  
  819.    The document can be queried with a keyword search by adding a
  820.    question mark to the end of the document address, followed by a list
  821.    of keywords separated by plus signs. See the network address format
  822.    for more information.
  823.  
  824.    Note: A server normally generates the ISINDEX tag automatically. If
  825.    added by hand to an HTML document, the browser assumes that the
  826.    server can handle a search on the document. Obviously the server
  827.    must have this capability for it to work: simply adding <ISINDEX> in
  828.    the document is not enough to make searches happen if the server
  829.    does not have a search engine!
  830.  
  831. Dave Raggett                                                           Page 17
  832. HTML 3.0                                                       28th March 1995
  833.  
  834.    Example:
  835.  
  836.        <ISINDEX>
  837.  
  838.    The URL used for processing queries can be overridden with the HREF
  839.    attribute. You can also use the PROMPT attribute to change the
  840.    default prompt supplied by the browser, e.g.
  841.  
  842.        <ISINDEX HREF="phone.db" PROMPT="Enter Surname:">
  843.  
  844. ------------------------------------------------------------------------------
  845. LINK
  846.  
  847.    The LINK element indicates a relationship between the document and
  848.    some other object. A document may have any number of LINK elements.
  849.    The LINK element is empty (does not have a closing tag), but takes
  850.    the same attributes as the anchor element. The important attributes
  851.    are:
  852.  
  853.    REL
  854.        This defines the relationship defined by the link.
  855.  
  856.    REV
  857.        This defines a reverse relationship. A link from document A to
  858.        document B with REV=--relation-- expresses the same relationship
  859.        as a link from B to A with REL=--relation--. REV=made is
  860.        sometimes used to identify the document author, either the
  861.        author's email address with a --mailto-- URI, or a link to the
  862.        author's home page.
  863.  
  864.    HREF
  865.        This names an object using the URI notation.
  866.  
  867. Using LINK to define document specific toolbars
  868.  
  869.    An important use of the LINK element is to define a toolbar of
  870.    navigation buttons or an equivalent mechanism such as menu items.
  871.  
  872.    LINK relationship values reserved for toolbars are:
  873.  
  874.    REL=Home
  875.        The link references a home page or the top of some hierarchy.
  876.  
  877.    REL=ToC
  878.        The link references a document serving as a table of contents.
  879.  
  880.    REL=Index
  881.        The link references a document providing an index for the
  882.        current document.
  883.  
  884.    REL=Glossary
  885.        The link references a document providing a glossary of terms
  886.  
  887. Dave Raggett                                                           Page 18
  888. HTML 3.0                                                       28th March 1995
  889.  
  890.        that pertain to the current document.
  891.  
  892.    REL=Copyright
  893.        The link references a copyright statement for the current
  894.        document.
  895.  
  896.    REL=Up
  897.        When the document forms part of a hierarchy, this link
  898.        references the immediate parent of the current document.
  899.  
  900.    REL=Next
  901.        The link references the next document to visit in a guided tour.
  902.  
  903.    REL=Previous
  904.        The link references the previous document in a guided tour.
  905.  
  906.    REL=Help
  907.        The link references a document offering help, e.g. describing
  908.        the wider context and offering further links to relevant
  909.        documents. This is aimed at reorienting users who have lost
  910.        their way.
  911.  
  912.    REL=Bookmark
  913.        Bookmarks are used to provide direct links to key entry points
  914.        into an extended document. The TITLE attribute may be used to
  915.        label the bookmark. Several bookmarks may be defined in each
  916.        document, and provide a means for orienting users in extended
  917.        documents.
  918.  
  919.    An example of toolbar LINK elements:
  920.  
  921.        <LINK REL=Previous HREF=doc31.html>
  922.        <LINK REL=Next HREF=doc33.html>
  923.        <LINK REL=Bookmark TITLE="Order Form" HREF=doc56.html>
  924.  
  925. Using LINK to include a Document Banner
  926.  
  927.    The LINK element can be used with REL=Banner to reference another
  928.    document to be used as banner for this document. This is typically
  929.    used for corporate logos, navigation aids, and other information
  930.    which shouldn't be scrolled with the rest of the document. For
  931.    example:
  932.  
  933.        <LINK REL=Banner HREF=banner.html>
  934.  
  935.    The use of a LINK element in this way, allows a banner to be shared
  936.    between several documents, with the benefit of being able to
  937.    separately cache the banner. Rather than using a linked banner, you
  938.    can also include the banner in the document itself, using the BANNER
  939.    element.
  940.  
  941. Link to an associated Style Sheet
  942.  
  943. Dave Raggett                                                           Page 19
  944. HTML 3.0                                                       28th March 1995
  945.  
  946.    The LINK element can be used with REL=StyleSheet to reference a
  947.    style sheet to be used to control the way the current document is
  948.    rendered. For example:
  949.  
  950.        <LINK REL=StyleSheet HREF=housestyle.dsssl>
  951.  
  952. Other uses of the LINK element
  953.  
  954.    Additional relationship names have been proposed, but do not form
  955.    part of this specification. Servers may also allow links to be added
  956.    by those who do not have the right to alter the body of a document.
  957.  
  958. ------------------------------------------------------------------------------
  959. META
  960.  
  961.    The META element is used within the HEAD element to embed document
  962.    meta-information not defined by other HTML elements. Such
  963.    information can be extracted by servers/clients for use in
  964.    identifying, indexing and cataloging specialized document
  965.    meta-information.
  966.  
  967.    Although it is generally preferable to used named elements that have
  968.    well defined semantics for each type of meta-information, such as
  969.    title, this element is provided for situations where strict SGML
  970.    parsing is necessary and the local DTD is not extensible.
  971.  
  972.    In addition, HTTP servers can read the contents of the document head
  973.    to generate response headers corresponding to any elements defining
  974.    a value for the attribute HTTP-EQUIV. This provides document authors
  975.    with a mechanism (not necessarily the preferred one) for identifying
  976.    information that should be included in the response headers of an
  977.    HTTP request.
  978.  
  979.    The META element has three attributes:
  980.  
  981.    NAME
  982.        Used to name a property such as author, publication date etc. If
  983.        absent, the name can be assumed to be the same as the value of
  984.        HTTP-EQUIV.
  985.  
  986.    CONTENT
  987.        Used to supply a value for a named property.
  988.  
  989.    HTTP-EQUIV
  990.        This attribute binds the element to an HTTP response header. If
  991.        the semantics of the HTTP response header named by this
  992.        attribute is known, then the contents can be processed based on
  993.        a well defined syntactic mapping, whether or not the DTD
  994.        includes anything about it. HTTP header names are not case
  995.        sensitive. If absent, the NAME attribute should be used to
  996.        identify this meta-information and it should not be used within
  997.        an HTPP response header.
  998.  
  999. Dave Raggett                                                           Page 20
  1000. HTML 3.0                                                       28th March 1995
  1001.  
  1002.    Examples:
  1003.  
  1004.    If the document contains:
  1005.  
  1006.    <META HTTP-EQUIV=Expires CONTENT="Tue, 04 Dec 1993 21:29:02 GMT">
  1007.    <META HTTP-EQUIV="Keywords" CONTENT="Nanotechnology, Biochemistry">
  1008.    <META HTTP-EQUIV="Reply-to" CONTENT="dsr@w3.org (Dave Raggett)">
  1009.  
  1010.    The server will include the following response headers:
  1011.  
  1012.    Expires: Tue, 04 Dec 1993 21:29:02 GMT
  1013.    Keywords: Nanotechnology, Biochemistry
  1014.    Reply-to: dsr@w3.org (Dave Raggett)
  1015.  
  1016.    When the HTTP-EQUIV attribute is absent, the server should not
  1017.    generate an HTTP response header for this meta-information, e.g.
  1018.  
  1019.    <META NAME="IndexType" CONTENT="Service">
  1020.  
  1021.    Do not use the META element to define information that should be
  1022.    associated with an existing HTML element.
  1023.  
  1024.    Example of an inappropriate use of the META element:
  1025.  
  1026.    <META NAME="Title" CONTENT="The Etymology of Dunsel">
  1027.  
  1028.    Do not name an HTTP-EQUIV attribute the same as a response header
  1029.    that should typically only be generated by the HTTP server. Some
  1030.    inappropriate names are "Server", "Date", and "Last-Modified".
  1031.    Whether a name is inappropriate depends on the particular server
  1032.    implementation. It is recommended that servers ignore any META
  1033.    elements that specify HTTP equivalents (case insensitively) to their
  1034.    own reserved response headers.
  1035.  
  1036. ------------------------------------------------------------------------------
  1037. NEXTID
  1038.  
  1039.    The NEXTID is a parameter read and generated by text editing
  1040.    software to generate unique identifiers. This tag takes a single
  1041.    attribute which is the the next document-wide alpha-numeric
  1042.    identifier to be allocated of the form z123.
  1043.  
  1044.    When modifying a document, existing anchor identifiers should not be
  1045.    reused, as these identifiers may be referenced by other documents.
  1046.    Human writers of HTML usually use mnemonic alphabetical identifiers.
  1047.  
  1048.    Example:
  1049.  
  1050.        <NEXTID N=Z27>
  1051.  
  1052.    HTML user agents may ignore the NEXTID element. Support for NEXTID
  1053.    does not impact HTML user agents in any way.
  1054.  
  1055. Dave Raggett                                                           Page 21
  1056. HTML 3.0                                                       28th March 1995
  1057.  
  1058.    --I want to get rid of NEXTID, or at least deprecate it!--
  1059.  
  1060. ------------------------------------------------------------------------------
  1061. RANGE
  1062.  
  1063.    The RANGE element is used to mark a range of the document, for
  1064.    example for highlighting regions of the document matching some
  1065.    search criteria, or which are the subject of an annotation etc.
  1066.  
  1067.        <RANGE CLASS=Search FROM=spot01 UNTIL=spot02>
  1068.  
  1069.    The FROM and UNTIL attributes specify positions in the document
  1070.    using SGML identifiers. Most elements in the document body can
  1071.    define such identifiers using ID attributes. The SPOT element is
  1072.    useful in this regard, as it allows search software etc. to insert
  1073.    IDs at random places:
  1074.  
  1075.        <SPOT ID=spot01> ... <SPOT ID=spot02>
  1076.  
  1077.    The RANGE element supports the following attributes:
  1078.  
  1079.    ID
  1080.        An SGML identifer used to name the range element.
  1081.  
  1082.    CLASS
  1083.        A character string used to subclass the range element.
  1084.  
  1085.    FROM
  1086.        References an SGML identifier for an element in the document
  1087.        body. It identifies the start of the marked range.
  1088.  
  1089.    UNTIL
  1090.        References an SGML identifier for an element in the document
  1091.        body. It identifies the end of the marked range.
  1092.  
  1093. ------------------------------------------------------------------------------
  1094. STYLE
  1095.  
  1096.    The STYLE element provides a means for including rendering
  1097.    information using a specified style notation. Information in the
  1098.    STYLE element overrides client defaults and that of linked style
  1099.    sheets. It allows authors to specify overrides, while for the most
  1100.    part using a generic style sheet, and as such improves the
  1101.    effectiveness of caching schemes for linked style sheets. There is
  1102.    one attribute - NOTATATION - which specifies an entity identifying
  1103.    an SGML notation in the HTML 3.0 DTD, for example:
  1104.  
  1105.        <style notation=dsssl-lite>
  1106.          --some dsssl-lite stuff ...--
  1107.        </style>
  1108.  
  1109.    Stylistic rules will in general match tag names and attribute values
  1110.  
  1111. Dave Raggett                                                           Page 22
  1112. HTML 3.0                                                       28th March 1995
  1113.  
  1114.    for elements in the document body. Context sensitive rules may be
  1115.    used for such purposes as rendering drop down capitals for the
  1116.    initial letter in the first paragraph following a header.
  1117.  
  1118. ------------------------------------------------------------------------------
  1119. TITLE
  1120.  
  1121.    Every HTML document must contain a TITLE element. The title should
  1122.    identify the contents of the document in a global context, and may
  1123.    be used in a history lists and as a label for the window displaying
  1124.    the document. Unlike headings, titles are not normally displayed in
  1125.    the text of a document itself.
  1126.  
  1127.    The TITLE element must occur within the head of the document, and
  1128.    may not contain anchors, paragraph tags, or highlighting. There may
  1129.    only be one TITLE in any document.
  1130.  
  1131.    The length of titles is unlimited, however, long titles may be
  1132.    truncated in some applications. To minimize this possibility, keep
  1133.    titles to fewer than 64 characters. Also keep in mind that a short
  1134.    title, such as Introduction, may be meaningless out of context. An
  1135.    example of a meaningful title might be:
  1136.  
  1137.        <Title>Recent Advances in Nanotechnology</Title>
  1138.  
  1139. Dave Raggett                                                           Page 23
  1140. HTML 3.0                                                       28th March 1995
  1141.  
  1142. The Body Element and Related Elements
  1143.  
  1144. The BODY element
  1145.  
  1146.    Permitted Context: HTML
  1147.    Content Model: %Body.Content
  1148.  
  1149.    Within the BODY element, you can structure text into paragraphs, and
  1150.    lists, as well as highlighting phrases and creating links, amongst
  1151.    other things. The BODY element has the following attributes, all of
  1152.    which are optional:
  1153.  
  1154.    Note that the ID, LANG and CLASS attributes can be used with
  1155.    virtually all of the elements permitted in the document body.
  1156.  
  1157.    ID
  1158.        An SGML identifier used as the target for hypertext links or for
  1159.        naming particular elements in associated style sheets.
  1160.        Identifiers are NAME tokens and must be unique within the scope
  1161.        of the current document.
  1162.  
  1163.    LANG
  1164.        This is one of the ISO standard language abbreviations, e.g.
  1165.        "en.uk" for the variation of English spoken in the United
  1166.        Kingdom. It can be used by parsers to select language specific
  1167.        choices for quotation marks, ligatures and hypenation rules etc.
  1168.        The language attribute is composed from the two letter language
  1169.        code from ISO 639, optionally followed by a period and a two
  1170.        letter country code from ISO 3166.
  1171.  
  1172.    CLASS
  1173.        This a space separated list of SGML NAME tokens and is used to
  1174.        subclass tag names. For instance, <P CLASS=STANZA.COUPLET>
  1175.        defines a paragraph that acts as a couplet in a stanza. By
  1176.        convention, the class names are interpreted hierarchically, with
  1177.        the most general class on the left and the most specific on the
  1178.        right, where classes are separated by a period. The CLASS
  1179.        attribute is most commonly used to attach a different style to
  1180.        some element, but it is recommended that where practical class
  1181.        names should be picked on the basis of the element's semantics,
  1182.        as this will permit other uses, such as restricting search
  1183.        through documents by matching on element class names. The
  1184.        conventions for choosing class names are outside the scope of
  1185.        this specification.
  1186.  
  1187.    BACKGROUND
  1188.        This can be used to specify a URI for an image tile to cover the
  1189.        document background. This provides a way of giving a group of
  1190.        documents a distinctive appearence. Clients may ignore this
  1191.        attribute. It is included here for the benefit of clients that
  1192.        don't support style sheets. Note that the text color may need to
  1193.        be adjusted to show an adequate contrast with the background.
  1194.  
  1195. Dave Raggett                                                           Page 24
  1196. HTML 3.0                                                       28th March 1995
  1197.  
  1198.    Note that you don't need to include a BODY tag unless you want to
  1199.    specify one of the above attributes.
  1200.  
  1201. Body Structure
  1202.  
  1203.    The document body is composed from zero or more of the following
  1204.    elements:
  1205.  
  1206.    *   DIV - used for hierarchical containers and static banners
  1207.  
  1208.    *   Headings (H1, to H6) - a set of headers of varying levels of
  1209.        importance
  1210.  
  1211.    *   Block elements - paragraphs, lists, forms, tables, figures and
  1212.        other elements
  1213.  
  1214.    *   Horizontal rules, and the ADDRESS element
  1215.  
  1216.    *   Text and character level markup including emphasis, images,
  1217.        math, hypertext links and miscellaneous elements.
  1218.  
  1219.    Note that text and character level markup are only permitted at this
  1220.    level for backwards compatibility with legacy documents. The
  1221.    HTML.Recommended flag enforces a more structured approach to
  1222.    authoring HTML documents.
  1223.  
  1224. Dave Raggett                                                           Page 25
  1225. HTML 3.0                                                       28th March 1995
  1226.  
  1227. Banners
  1228.  
  1229.    Permitted Context: the start of the BODY element
  1230.    Content Model: %Body.Content
  1231.  
  1232.    The BANNER element is used for corporate logos, navigation aids,
  1233.    disclaimers and other information which shouldn't be scrolled with
  1234.    the rest of the document. It provides an alternative to using the
  1235.    LINKelement in the document head to reference an externally defined
  1236.    banner.
  1237.  
  1238. Permitted Attributes
  1239.  
  1240.    ID
  1241.        An SGML identifier used as the target for hypertext links or for
  1242.        naming particular elements in associated style sheets.
  1243.        Identifiers are NAME tokens and must be unique within the scope
  1244.        of the current document.
  1245.  
  1246.    LANG
  1247.        This is one of the ISO standard language abbreviations, e.g.
  1248.        "en.uk" for the variation of English spoken in the United
  1249.        Kingdom. It can be used by parsers to select language specific
  1250.        choices for quotation marks, ligatures and hypenation rules etc.
  1251.        The language attribute is composed from the two letter language
  1252.        code from ISO 639, optionally followed by a period and a two
  1253.        letter country code from ISO 3166.
  1254.  
  1255.    CLASS
  1256.        This a space separated list of SGML NAME tokens and is used to
  1257.        subclass tag names. By convention, the class names are
  1258.        interpreted hierarchically, with the most general class on the
  1259.        left and the most specific on the right, where classes are
  1260.        separated by a period. The CLASS attribute is most commonly used
  1261.        to attach a different style to some element, but it is
  1262.        recommended that where practical class names should be picked on
  1263.        the basis of the element's semantics, as this will permit other
  1264.        uses, such as restricting search through documents by matching
  1265.        on element class names. The conventions for choosing class names
  1266.        are outside the scope of this specification.
  1267.  
  1268. Dave Raggett                                                           Page 26
  1269. HTML 3.0                                                       28th March 1995
  1270.  
  1271. Divisions
  1272.  
  1273.    Permitted Context: %Body.Content
  1274.    Content Model: %Body.Content
  1275.  
  1276.    The DIV element is used with the CLASS attribute to represent
  1277.    different kinds of containers, e.g. chapter, section, abstract, or
  1278.    appendix. For example:
  1279.  
  1280.    <DIV CLASS=Abstract>
  1281.    <P>TheChieftain product range is the white hot hope for the
  1282.    coming year. This report sets out how to position Chieftain
  1283.    against competing products.
  1284.    </DIV>
  1285.  
  1286. Permitted Attributes
  1287.  
  1288.    ID
  1289.        An SGML identifier used as the target for hypertext links or for
  1290.        naming particular elements in associated style sheets.
  1291.        Identifiers are NAME tokens and must be unique within the scope
  1292.        of the current document.
  1293.  
  1294.    LANG
  1295.        This is one of the ISO standard language abbreviations, e.g.
  1296.        "en.uk" for the variation of English spoken in the United
  1297.        Kingdom. It can be used by parsers to select language specific
  1298.        choices for quotation marks, ligatures and hypenation rules etc.
  1299.        The language attribute is composed from the two letter language
  1300.        code from ISO 639, optionally followed by a period and a two
  1301.        letter country code from ISO 3166.
  1302.  
  1303.    CLASS
  1304.        This a space separated list of SGML NAME tokens and is used to
  1305.        subclass tag names. For instance, <DIV CLASS=APPENDIX> defines a
  1306.        division that acts as an appendix. By convention, the class
  1307.        names are interpreted hierarchically, with the most general
  1308.        class on the left and the most specific on the right, where
  1309.        classes are separated by a period. The CLASS attribute is most
  1310.        commonly used to attach a different style to some element, but
  1311.        it is recommended that where practical class names should be
  1312.        picked on the basis of the element's semantics, as this will
  1313.        permit other uses, such as restricting search through documents
  1314.        by matching on element class names. The conventions for choosing
  1315.        class names are outside the scope of this specification.
  1316.  
  1317.    ALIGN
  1318.        The ALIGN attribute can be used to explicitly specify the
  1319.        horizontal alignment of paragraphs within a division:
  1320.  
  1321.        align=left
  1322.  
  1323. Dave Raggett                                                           Page 27
  1324. HTML 3.0                                                       28th March 1995
  1325.  
  1326.            Paragraphs are rendered flush left (the default).
  1327.  
  1328.        align=center
  1329.            Paragraphs are centered.
  1330.  
  1331.        align=right
  1332.            Paragraphs are rendered flush right.
  1333.  
  1334.        align=justify
  1335.            Text lines are justified where practical, otherwise this
  1336.            gives the same effect as the default align=left setting.
  1337.  
  1338.    NOWRAP
  1339.        The NOWRAP attribute is used when you don't want the browser to
  1340.        automatically wrap lines. You can then explicitly specify line
  1341.        breaks in paragrphs using the BR element.
  1342.  
  1343.    CLEAR
  1344.        This attribute is common to all block-like elements. When text
  1345.        flows around a figure or table in the margin, you sometimes want
  1346.        to start the division below the figure rather than alongside it.
  1347.        The CLEAR attribute allows you to move down unconditionally:
  1348.  
  1349.        clear=left
  1350.            move down until left margin is clear
  1351.  
  1352.        clear=right
  1353.            move down until right margin is clear
  1354.  
  1355.        clear=all
  1356.            move down until both margins are clear
  1357.  
  1358.        Alternatively, you can decide to place the element alongside the
  1359.        figure just so long as there is enough room. The minimum width
  1360.        needed is specified as:
  1361.  
  1362.        clear="40 en"
  1363.            move down until there is at least 40 en units free
  1364.  
  1365.        clear="100 pixels"
  1366.            move down until there is at least 100 pixels free
  1367.  
  1368.        The style sheet (or browser defaults) may provide default
  1369.        minimum widths for each class of block-like elements.
  1370.  
  1371. Dave Raggett                                                           Page 28
  1372. HTML 3.0                                                       28th March 1995
  1373.  
  1374. Headings
  1375.  
  1376.    Permitted Context: %Body.Content
  1377.    Content Model: %text
  1378.  
  1379.    HTML defines six levels of headings. A heading element implies all
  1380.    the font changes, paragraph breaks before and after, and any white
  1381.    space necessary to render the heading. The heading elements are H1,
  1382.    H2, H3, H4, H5, and H6 with H1 being the highest (or most important)
  1383.    level and H6 the least. For example:
  1384.  
  1385.    <H1>This is a top level heading</H1> Here is some text.
  1386.    <H2>Second level heading</H2> Here is some more text.
  1387.  
  1388.    Use the DIV element together with header elements when you want to
  1389.    make the hierarchical structure of a document explicit. This is
  1390.    needed as header elements themselves only contain the text of the
  1391.    header, and do not imply any structural division of documents into
  1392.    sections. Header elements have the same content model as paragraphs,
  1393.    that is text and character level markup, such as character emphasis,
  1394.    inline images, form fields and math.
  1395.  
  1396.    Headers play a related role to lists in structuring documents, and
  1397.    it is common to number headers or to include a graphic that acts
  1398.    like a bullet in lists. HTML 3.0 recognizes this with attributes
  1399.    that assist with numbering headers and allow authors to specify a
  1400.    custom graphic.
  1401.  
  1402.    The numbering style is controlled by the style sheet, e.g.
  1403.  
  1404.    1.  The style sheet specifies whether headers are numbered, and
  1405.        which style is used to render the current sequence number, e.g.
  1406.        arabic, upper alpha, lower alpha, upper roman, lower roman or a
  1407.        numbering scheme appropriate to the current language.
  1408.  
  1409.    2.  Whether the parent numbering is inherited, e.g. "5.1.d" where 5
  1410.        is the current sequence number for H1 headers, 1 is the number
  1411.        for H2 headers and 4 for H3 headers.
  1412.  
  1413.    The seqnum and skip attributes can be used to override the default
  1414.    treatment of header sequence numbers, and provide for a continuity
  1415.    with numbered lists.
  1416.  
  1417.    The dingbat or src attribute may be used to specify a bullet-like
  1418.    graphic to be placed adjacent to the header. The positioning of this
  1419.    graphic is controlled by the style sheet. The graphic is for
  1420.    decorative purposes only and silently ignored on non-graphical HTML
  1421.    user agents.
  1422.  
  1423. Word Wrapping
  1424.  
  1425.    User agents are free to wrap lines at whitespace characters so as to
  1426.    ensure lines fit within the current window size. Use the  
  1427.  
  1428. Dave Raggett                                                           Page 29
  1429. HTML 3.0                                                       28th March 1995
  1430.  
  1431.    entity for the non-breaking space character, when you want to make
  1432.    sure that a line isn't broken! Alternatively, use the NOWRAP
  1433.    attribute to disable word wrapping and the <BR> element to force
  1434.    line breaks where desired.
  1435.  
  1436.    --Netscape includes two tags: <NOBR>...</NOBR>, and <WBR>. The
  1437.    former turns off wordwrapping between the start and end NOBR tag,
  1438.    while WBR is for the rare case when you want to specify where to
  1439.    break the line if needed. Should HTML 3.0 provide an equivalent
  1440.    mechanism to WBR, (either a tag or an entity)?--
  1441.  
  1442. Permitted Attributes
  1443.  
  1444.    ID
  1445.        An SGML identifier used as the target for hypertext links or for
  1446.        naming particular elements in associated style sheets.
  1447.        Identifiers are NAME tokens and must be unique within the scope
  1448.        of the current document.
  1449.  
  1450.    LANG
  1451.        This is one of the ISO standard language abbreviations, e.g.
  1452.        "en.uk" for the variation of English spoken in the United
  1453.        Kingdom. It can be used by parsers to select language specific
  1454.        choices for quotation marks, ligatures and hypenation rules etc.
  1455.        The language attribute is composed from the two letter language
  1456.        code from ISO 639, optionally followed by a period and a two
  1457.        letter country code from ISO 3166.
  1458.  
  1459.    CLASS
  1460.        This a space separated list of SGML NAME tokens and is used to
  1461.        subclass tag names. For instance, <H2 CLASS=Section> defines a
  1462.        level 2 header that acts as a section header. By convention, the
  1463.        class names are interpreted hierarchically, with the most
  1464.        general class on the left and the most specific on the right,
  1465.        where classes are separated by a period. The CLASS attribute is
  1466.        most commonly used to attach a different style to some element,
  1467.        but it is recommended that where practical class names should be
  1468.        picked on the basis of the element's semantics, as this will
  1469.        permit other uses, such as restricting search through documents
  1470.        by matching on element class names. The conventions for choosing
  1471.        class names are outside the scope of this specification.
  1472.  
  1473.    ALIGN
  1474.        Headings are usually rendered flush left. The ALIGN attribute
  1475.        can be used to explicitly specify the horizontal alignment:
  1476.  
  1477.        align=left
  1478.            The heading is rendered flush left (the default).
  1479.  
  1480.        align=center
  1481.            The heading is centered.
  1482.  
  1483. Dave Raggett                                                           Page 30
  1484. HTML 3.0                                                       28th March 1995
  1485.  
  1486.        align=right
  1487.            The heading is rendered flush right.
  1488.  
  1489.        align=justify
  1490.            Heading lines are justified where practical, otherwise this
  1491.            gives the same effect as the default align=left setting.
  1492.  
  1493.        For example:
  1494.  
  1495.        <h1 align=center>This is a centered heading</H1>
  1496.        Here is some text. <H2 align=right>and this is a flush right
  1497.        heading</H2> Here is some more text.
  1498.  
  1499.    CLEAR
  1500.        This attribute is common to all block-like elements. When text
  1501.        flows around a figure or table in the margin, you sometimes want
  1502.        to start an element like a header, paragraph or list below the
  1503.        figure rather than alongside it. The CLEAR attribute allows you
  1504.        to move down unconditionally:
  1505.  
  1506.        clear=left
  1507.            move down until left margin is clear
  1508.  
  1509.        clear=right
  1510.            move down until right margin is clear
  1511.  
  1512.        clear=all
  1513.            move down until both margins are clear
  1514.  
  1515.        Alternatively, you can decide to place the element alongside the
  1516.        figure just so long as there is enough room. The minimum width
  1517.        needed is specified as:
  1518.  
  1519.        clear="40 en"
  1520.            move down until there is at least 40 en units free
  1521.  
  1522.        clear="100 pixels"
  1523.            move down until there is at least 100 pixels free
  1524.  
  1525.        The style sheet (or browser defaults) may provide default
  1526.        minimum widths for each class of block-like elements.
  1527.  
  1528.    SEQNUM
  1529.        A sequence number is associated with each level of header from
  1530.        the top level (H1) to the bottom level (H6). This attribute is
  1531.        used to set the sequence number associated with the header level
  1532.        of the current element to a given number, e.g. SEQNUM=10.
  1533.        Normally, the sequence number is initialized to 1 at the
  1534.  
  1535. Dave Raggett                                                           Page 31
  1536. HTML 3.0                                                       28th March 1995
  1537.  
  1538.        beginning of the document and incremented after each header
  1539.        element. It is reset to 1 by any header element of a higher
  1540.        level, e.g. an H1 header resets the sequence numbers for H2 to
  1541.        H6. The style of header numbering is controlled by the style
  1542.        sheet.
  1543.  
  1544.    SKIP
  1545.        Increments the sequence number before rendering the element. It
  1546.        is used when headers have been left out of the sequence. For
  1547.        instance, SKIP=3 advances the sequence number past 3 omitted
  1548.        items.
  1549.  
  1550.    DINGBAT
  1551.        Specifies an iconic image to appear preceding the header. The
  1552.        icon is specified as an entity name. A list of standard icon
  1553.        entity names for HTML 3.0 is given in an appendix of this
  1554.        specification.
  1555.  
  1556.    SRC
  1557.        Specifies an image to appear preceding the header. The image is
  1558.        specified as a URI. This attribute may appear together with the
  1559.        MD attribute.
  1560.  
  1561.    MD
  1562.        Specifies a message digest or cryptographic checksum for the
  1563.        associated graphic specified by the SRC attribute. It is used
  1564.        when you want to be sure that a linked object is indeed the same
  1565.        one that the author intended, and hasn't been modified in any
  1566.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  1567.        specifies an MD5 checksum encoded as a base64 character string.
  1568.        The MD attribute is generally allowed for all elements which
  1569.        support URI based links.
  1570.  
  1571.    NOWRAP
  1572.        The NOWRAP attribute is used when you don't want the browser to
  1573.        automatically wrap lines. You can then explicitly specify line
  1574.        breaks in headings using the BR element. For example:
  1575.  
  1576.        <h1 nowrap>This heading has wordwrap turned off<br>
  1577.        and the BR element is used for explicit line breaks</H1>
  1578.  
  1579. Dave Raggett                                                           Page 32
  1580. HTML 3.0                                                       28th March 1995
  1581.  
  1582. Paragraphs
  1583.  
  1584.    Permitted Context: %Body.Content, %flow, %block
  1585.    Content Model: %text
  1586.  
  1587.    The <P> element is used to define a paragraph. The exact rendering
  1588.    (indentation, leading etc.) is not defined and may be a function of
  1589.    other tags, style sheets, etc. The ALIGN attribute can be used to
  1590.    explicitly specify the horizontal alignment. Paragraph elements have
  1591.    the same content model as headers, that is text and character level
  1592.    markup, such as character emphasis, inline images, form fields and
  1593.    math.
  1594.  
  1595.    Example:
  1596.  
  1597.    <H1>The heading precedes the first paragraph</H1>
  1598.    <P>Here is the text of the first paragraph. <P>and this is
  1599.    the text of the second paragraph.
  1600.  
  1601.    The text up to the next <p> element is treated as being part of the
  1602.    current paragraph. This is an example of how SGML allows certain end
  1603.    tags like </p> to be left out where they can be inferred from the
  1604.    context.
  1605.  
  1606. Word Wrapping
  1607.  
  1608.    User agents are free to wrap lines at whitespace characters so as to
  1609.    ensure lines fit within the current window size. Use the  
  1610.    entity for the non-breaking space character, when you want to make
  1611.    sure that a line isn't broken! Alternatively, use the NOWRAP
  1612.    attribute to disable word wrapping and the <BR> element to force
  1613.    line breaks where desired.
  1614.  
  1615.    --Netscape includes two tags: <NOBR>...</NOBR>, and <WBR>. The
  1616.    former turns off wordwrapping between the start and end NOBR tag,
  1617.    while WBR is for the rare case when you want to specify where to
  1618.    break the line if needed. Should HTML 3.0 provide an equivalent
  1619.    mechanism to WBR, (either a tag or an entity)?--
  1620.  
  1621.    Note: Do not use empty paragraphs to add white space around
  1622.    headings, lists or other elements. White space is added by the
  1623.    rendering software.
  1624.  
  1625. Permitted Attributes
  1626.  
  1627.    ID
  1628.        An SGML identifier used as the target for hypertext links or for
  1629.        naming particular elements in associated style sheets.
  1630.        Identifiers are NAME tokens and must be unique within the scope
  1631.        of the current document.
  1632.  
  1633.    LANG
  1634.        This is one of the ISO standard language abbreviations, e.g.
  1635.  
  1636. Dave Raggett                                                           Page 33
  1637. HTML 3.0                                                       28th March 1995
  1638.  
  1639.        "en.uk" for the variation of English spoken in the United
  1640.        Kingdom. It can be used by parsers to select language specific
  1641.        choices for quotation marks, ligatures and hypenation rules etc.
  1642.        The language attribute is composed from the two letter language
  1643.        code from ISO 639, optionally followed by a period and a two
  1644.        letter country code from ISO 3166.
  1645.  
  1646.    CLASS
  1647.        This a space separated list of SGML NAME tokens and is used to
  1648.        subclass tag names. For instance, <P CLASS=abstract> defines a
  1649.        paragraph that acts as an abstract. By convention, the class
  1650.        names are interpreted hierarchically, with the most general
  1651.        class on the left and the most specific on the right, where
  1652.        classes are separated by a period. The CLASS attribute is most
  1653.        commonly used to attach a different style to some element, but
  1654.        it is recommended that where practical class names should be
  1655.        picked on the basis of the element's semantics, as this will
  1656.        permit other uses, such as restricting search through documents
  1657.        by matching on element class names. The conventions for choosing
  1658.        class names are outside the scope of this specification.
  1659.  
  1660.    ALIGN
  1661.        Paragraphs are usually rendered flush left. The ALIGN attribute
  1662.        can be used to explicitly specify the horizontal alignment:
  1663.  
  1664.        align=left
  1665.            The paragraph is rendered flush left (the default).
  1666.  
  1667.        align=center
  1668.            The paragraph is centered.
  1669.  
  1670.        align=right
  1671.            The paragraph is rendered flush right.
  1672.  
  1673.        align=justify
  1674.            Text lines are justified where practical, otherwise this
  1675.            gives the same effect as the default align=left setting.
  1676.  
  1677.        For example:
  1678.  
  1679.        <p align=center>This is a centered paragraph.
  1680.        <p align=right>and this is a flush right paragraph.
  1681.  
  1682.    CLEAR
  1683.        This attribute is common to all block-like elements. When text
  1684.        flows around a figure or table in the margin, you sometimes want
  1685.        to start an element like a header, paragraph or list below the
  1686.        figure rather than alongside it. The CLEAR attribute allows you
  1687.        to move down unconditionally:
  1688.  
  1689. Dave Raggett                                                           Page 34
  1690. HTML 3.0                                                       28th March 1995
  1691.  
  1692.        clear=left
  1693.            move down until left margin is clear
  1694.  
  1695.        clear=right
  1696.            move down until right margin is clear
  1697.  
  1698.        clear=all
  1699.            move down until both margins are clear
  1700.  
  1701.        Alternatively, you can decide to place the element alongside the
  1702.        figure just so long as there is enough room. The minimum width
  1703.        needed is specified as:
  1704.  
  1705.        clear="40 en"
  1706.            move down until there is at least 40 en units free
  1707.  
  1708.        clear="100 pixels"
  1709.            move down until there is at least 100 pixels free
  1710.  
  1711.        The style sheet (or browser defaults) may provide default
  1712.        minimum widths for each class of block-like elements.
  1713.  
  1714.    NOWRAP
  1715.        The NOWRAP attribute is used when you don't want the browser to
  1716.        automatically wrap lines. You can then explicitly specify line
  1717.        breaks in paragraphs using the BR element. For example:
  1718.  
  1719.        <p nowrap>This paragraph has wordwrap turned off<br>
  1720.        and the BR element is used for explicit line breaks
  1721.  
  1722. Dave Raggett                                                           Page 35
  1723. HTML 3.0                                                       28th March 1995
  1724.  
  1725. Line Breaks
  1726.  
  1727.    Permitted Context: %text
  1728.    Content Model: Empty!
  1729.  
  1730.    Line break and tab elements can be used when you need a little more
  1731.    control over how the browser renders the text. The <BR> element is
  1732.    used to force a line break.
  1733.  
  1734.    For example:
  1735.  
  1736.        This is the first line<br>
  1737.        and this is the second<br>
  1738.        and this the third
  1739.  
  1740.    --Shouldn't we have a conditional line break element like Netscape's
  1741.    WBR thats indicates where to break lines when needed and when
  1742.    wordwrap is disabled? Rather than an element, shouldn't this be an
  1743.    entity - is there one already defined for this purpose?--
  1744.  
  1745. Permitted Attributes
  1746.  
  1747.    ID
  1748.        An SGML identifier used as the target for hypertext links or for
  1749.        naming particular elements in associated style sheets.
  1750.        Identifiers are NAME tokens and must be unique within the scope
  1751.        of the current document.
  1752.  
  1753.    LANG
  1754.        This is one of the ISO standard language abbreviations, e.g.
  1755.        "en.uk" for the variation of English spoken in the United
  1756.        Kingdom. It can be used by parsers to select language specific
  1757.        choices for quotation marks, ligatures and hypenation rules etc.
  1758.        The language attribute is composed from the two letter language
  1759.        code from ISO 639, optionally followed by a period and a two
  1760.        letter country code from ISO 3166.
  1761.  
  1762.    CLASS
  1763.        This a space separated list of SGML NAME tokens and is used to
  1764.        subclass tag names. By convention, the class names are
  1765.        interpreted hierarchically, with the most general class on the
  1766.        left and the most specific on the right, where classes are
  1767.        separated by a period. The CLASS attribute is most commonly used
  1768.        to attach a different style to some element, but it is
  1769.        recommended that where practical class names should be picked on
  1770.        the basis of the element's semantics, as this will permit other
  1771.        uses, such as restricting search through documents by matching
  1772.        on element class names. The conventions for choosing class names
  1773.        are outside the scope of this specification.
  1774.  
  1775.    CLEAR
  1776.        When text flows around a figure or table in the margin, you
  1777.        sometimes want to start the next line below the figure rather
  1778.  
  1779. Dave Raggett                                                           Page 36
  1780. HTML 3.0                                                       28th March 1995
  1781.  
  1782.        than alongside it. The CLEAR attribute allows you to move down unconditionally:
  1783.  
  1784.        clear=left
  1785.            move down until left margin is clear
  1786.  
  1787.        clear=right
  1788.            move down until right margin is clear
  1789.  
  1790.        clear=all
  1791.            move down until both margins are clear
  1792.  
  1793.        Alternatively, you can decide to place the element alongside the
  1794.        figure just so long as there is enough room. The minimum width
  1795.        needed is specified as:
  1796.  
  1797.        clear="40 en"
  1798.            move down until there is at least 40 en units free
  1799.  
  1800.        clear="100 pixels"
  1801.            move down until there is at least 100 pixels free
  1802.  
  1803.        The style sheet (or browser defaults) may provide default
  1804.        minimum widths for each class of block-like elements.
  1805.  
  1806. Dave Raggett                                                           Page 37
  1807. HTML 3.0                                                       28th March 1995
  1808.  
  1809. Horizontal Tabs
  1810.  
  1811.    Permitted Context: %text
  1812.    Content Model: Empty!
  1813.  
  1814.    The TAB element can be used when you want fine control over the
  1815.    horizontal positioning. The TAB element is used with the <tab
  1816.    id=--name--> attribute to define named tab stops. Subsequently, you
  1817.    can use the TAB element with the <tab to=--name--> attribute to move
  1818.    to the previously defined tab stop. This approach avoids the need to
  1819.    know the font metrics in advance. The TAB element, together with
  1820.    style sheets, allows conversion software to preserve layout
  1821.    information when importing documents created with conventional word
  1822.    processing software.
  1823.  
  1824.    For example:
  1825.  
  1826.    <p><b>noct<tab id=t1>ambulant</b> - walking at night<br>
  1827.    <tab to=t1>(from Latin: <i>nox noctis</i> night + <i>ambulare</i> walk)
  1828.  
  1829.    which is rendered as:
  1830.  
  1831.    noctambulant - walking at night
  1832.        (from Latin: --nox noctis-- night + --ambulare-- walk)
  1833.  
  1834.    The tab stop name (--t1-- in the example) should be unique within
  1835.    the current document and composed from an initial letter followed by
  1836.    letters, digits or hyphens.
  1837.  
  1838.    Sometimes, you want to make the remainder of the line flush right
  1839.    while leaving the earlier words unmoved. This is possible with the
  1840.    --align-- attribute. For example:
  1841.  
  1842.    Left part of line<tab align=right>and right part of line.
  1843.  
  1844.    which is rendered as:
  1845.  
  1846.    Left part of line                               and right part of line.
  1847.  
  1848. Permitted Attributes
  1849.  
  1850.    ID
  1851.        An SGML identifier used to name a new tab stop at the current
  1852.        position. The scope of the tab stop is the rest of the document.
  1853.  
  1854.    INDENT
  1855.        Specifies the number of en units before the tab stop. The en is
  1856.        a typographical unit equal to half the point size. It allows
  1857.        authors to control the leading indent before text, e.g. in
  1858.        poetry, one might use: <TAB INDENT=6> to indent six en units at
  1859.        the start of a line. The INDENT attribute is not meaningful when
  1860.        combined with the TO attribute.
  1861.  
  1862. Dave Raggett                                                           Page 38
  1863. HTML 3.0                                                       28th March 1995
  1864.  
  1865.    TO
  1866.        Specifies a previously defined tab stop (see ID attribute).
  1867.  
  1868.    ALIGN
  1869.        Lines are usually rendered according to the alignment option for
  1870.        the enclosing paragraph element. The ALIGN attribute can be used
  1871.        to explicitly specify the horizontal alignment:
  1872.  
  1873.        align=left
  1874.            Following text starts immediately after the designated tab
  1875.            stop (the default).
  1876.  
  1877.        align=center
  1878.            Following text up to next tab or line break is centered on
  1879.            the designated tab stop. If the TO attribute is missing, it
  1880.            centers the text between the current left and right margins.
  1881.  
  1882.        align=right
  1883.            Following text up to the next tab or line break is rendered
  1884.            flush right to the designated tab stop. If the TO attribute
  1885.            is missing, it renders the text flush right against the
  1886.            current right margin.
  1887.  
  1888.        align=decimal
  1889.            The following text is searched for the first occurrence of
  1890.            the character representing the decimal point. The text up to
  1891.            the next tab or line break is then aligned such that the
  1892.            decimal point starts at the designated tab stop. If the TO
  1893.            attribute is missing, the tab element is treated as a single
  1894.            space character.
  1895.  
  1896.    DP
  1897.        This specifies the character to be used for the decimal point
  1898.        with the ALIGN attribute, e.g. dp="." (the default) or dp=",".
  1899.        The default may be altered by the language context, as set by
  1900.        the LANG attribute on enclosing elements.
  1901.  
  1902.    Note: if the specified alignment and tab stop would cause text to
  1903.    overlap preceding text, then the tab element may be treated as a
  1904.    single space character.
  1905.  
  1906.    --How should the above be rewritten to work with languages which are
  1907.    rendered from right to left? What about lines with mixed
  1908.    directions?--
  1909.  
  1910. Dave Raggett                                                           Page 39
  1911. HTML 3.0                                                       28th March 1995
  1912.  
  1913. Hypertext Links
  1914.  
  1915.    Permitted Context: %text
  1916.    Content Model: %text, but no nested anchors
  1917.  
  1918.    The anchor <A> element is used to define the start and/or
  1919.    destination of a hypertext link. In previous versions of HTML it
  1920.    provided the only means for defining destination anchors within
  1921.    documents, but you can now use any ID attribute as a destination
  1922.    anchor so that links can now be made to divisions, paragraphs and
  1923.    most other elements.
  1924.  
  1925.    Example:
  1926.  
  1927.    The <A HREF="http://www.w3.org/">World Wide Web Organization</A>
  1928.    provides information on Web related standards, mailing lists
  1929.    and freeware tools.
  1930.  
  1931.    The text between the start and end tag defines the label for the
  1932.    link. Selecting the link takes the reader to the document specified
  1933.    by the HREF attribute, in this case, the W3O home page. The label
  1934.    can include graphics defined with IMG elements.
  1935.  
  1936.    For FIG elements, the anchor element serves a dual role.
  1937.    Non-graphical user agents interpret it as a conventional text-based
  1938.    hypertext link, while graphical user agents interpret the anchor's
  1939.    SHAPE attribute as a graphical hotzone on the figure.
  1940.  
  1941. Permitted Attributes
  1942.  
  1943.    ID
  1944.        An SGML identifier used as the target for hypertext links or for
  1945.        naming particular elements in associated style sheets.
  1946.        Identifiers are NAME tokens and must be unique within the scope
  1947.        of the current document. This attribute supercedes the "NAME"
  1948.        attribute, see below.
  1949.  
  1950.        For example, the following paragraph is defined as an anchor
  1951.        named "potomac":
  1952.  
  1953.        <P ID="potomac">The Potomac river flows into Boston harbour,
  1954.        and played an important role in opening up the hinterland
  1955.        to early settlers...
  1956.  
  1957.        Elsewhere, you can define a link to this paragraph, as follows:
  1958.  
  1959.        <A HREF="#potomac">Boston</A> is a historic city and
  1960.        a thriving center of commerce and higher education.
  1961.  
  1962.        The reader can select the link labelled "Boston" to see further
  1963.        information on the Boston area.
  1964.  
  1965.    LANG
  1966.  
  1967. Dave Raggett                                                           Page 40
  1968. HTML 3.0                                                       28th March 1995
  1969.  
  1970.        This is one of the ISO standard language abbreviations, e.g.
  1971.        "en.uk" for the variation of English spoken in the United
  1972.        Kingdom. It can be used by parsers to select language specific
  1973.        choices for quotation marks, ligatures and hypenation rules etc.
  1974.        The language attribute is composed from the two letter language
  1975.        code from ISO 639, optionally followed by a period and a two
  1976.        letter country code from ISO 3166.
  1977.  
  1978.    CLASS
  1979.        This a space separated list of SGML NAME tokens and is used to
  1980.        subclass tag names. By convention, the class names are
  1981.        interpreted hierarchically, with the most general class on the
  1982.        left and the most specific on the right, where classes are
  1983.        separated by a period. The CLASS attribute is most commonly used
  1984.        to attach a different style to some element, but it is
  1985.        recommended that where practical class names should be picked on
  1986.        the basis of the element's semantics, as this will permit other
  1987.        uses, such as restricting search through documents by matching
  1988.        on element class names. The conventions for choosing class names
  1989.        are outside the scope of this specification.
  1990.  
  1991.    HREF
  1992.        The HREF attribute implies that the anchor acts as the start of
  1993.        a hypertext link. The destination is designated by the value of
  1994.        the HREF attribute, which is expressed in the Universal Resource
  1995.        Identifier (URI) notation.
  1996.  
  1997.    MD
  1998.        Specifies a message digest or cryptographic checksum for the
  1999.        linked document designated by the HREF attribute. It is used
  2000.        when you want to be sure that a linked object is indeed the same
  2001.        one that the author intended, and hasn't been modified in any
  2002.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  2003.        specifies an MD5 checksum encoded as a base64 character string.
  2004.        The MD attribute is generally allowed for all elements which
  2005.        support URI based links.
  2006.  
  2007.    NAME
  2008.        This attribute is used to define a named anchor for use as the
  2009.        destination of hypertext links. For example, the following
  2010.        defines an anchor than can be used as the destination of a jump
  2011.        into a description of the Boston area.
  2012.  
  2013.        The <A NAME="potomac">Potomac river</A> flows into Boston
  2014.        harbour.
  2015.  
  2016.        Note: the NAME attribute has been superceded by the ID
  2017.        attribute. User agents should include support for NAME to ensure
  2018.        backwards compatibility with legacy documents produced using
  2019.        previous versions of HTML.
  2020.  
  2021.    SHAPE
  2022.        This attribute is used within figures to define shaped hotzones
  2023.  
  2024. Dave Raggett                                                           Page 41
  2025. HTML 3.0                                                       28th March 1995
  2026.  
  2027.        for graphical hypertext links. Full details of how to use this
  2028.        feature will be given with the description of the figure
  2029.        element. The attribute value is a string taking one of the
  2030.        following forms:
  2031.  
  2032.        "default"
  2033.            Used to define a default link for the figure background.
  2034.  
  2035.        "circle x, y, r"
  2036.            Where x and y define the center and r specifies the radius.
  2037.  
  2038.        "rect x, y, w, h"
  2039.            Where x, y define the upper left corner and w, h define the
  2040.            width and height respectively
  2041.  
  2042.        "polygon x1, y1, x2, y2, ..."
  2043.            Given n pairs of x, y coordinates, the polygon is closed by
  2044.            a line linking the n'th point to the first. Intersecting
  2045.            polygons use the non-zero winding number rule to determine
  2046.            if a point lies inside the polygon.
  2047.  
  2048.        If a pointer event occurs in a region where two or more shapes
  2049.        overlap, the distance from the point to the center of gravity of
  2050.        each of the overlapping shapes is computed and the closest one
  2051.        chosen. This feature is useful when you want lots of closely
  2052.        spaced hotzones, for example over points on a map, as it allows
  2053.        you to use simple shapes without worrying about overlaps.
  2054.  
  2055.        Note: The x coordinate increases to the right, and the y
  2056.        coordinate increases downwards in the same way as IMG and image
  2057.        maps. If both numbers are integers, the coordinates are
  2058.        interpreted as pixel offsets from the upper left corner of the
  2059.        figure. Otherwise, the coordinates are interpreted as scaled
  2060.        values in the range 0.0 to 1.0 across the figure. Note the
  2061.        syntax is tolerant of repeated white space characters between
  2062.        tokens.
  2063.  
  2064.    TITLE
  2065.        This is informational only and describes the object specified
  2066.        with the HREF attribute. It can be used for object types that
  2067.        don't possess titles, such as graphics, plain text and Gopher
  2068.        menus.
  2069.  
  2070.    REL
  2071.        Used to describe the relationship of the linked object specified
  2072.        with the HREF attribute. The set of relationship names is not
  2073.        part of this specification, although "Path" and "Node" are
  2074.        reserved for future use with hypertext paths or guided tours.
  2075.        The REL attribute can be used to support search for links
  2076.        serving particular relationships.
  2077.  
  2078. Dave Raggett                                                           Page 42
  2079. HTML 3.0                                                       28th March 1995
  2080.  
  2081.    REV
  2082.        This defines a reverse relationship. A link from document A to
  2083.        document B with REV=--relation-- expresses the same relationship
  2084.        as a link from B to A with REL=--relation--. REV=made is
  2085.        sometimes used to identify the document author, either the
  2086.        author's email address with a --mailto-- URI, or a link to the
  2087.        author's home page. Tables of contents can use anchors with
  2088.        REV="ToC" to allow software to insert page numbers when printing
  2089.        hypertext documents. The plain text version of this
  2090.        specification was generated in this way!
  2091.  
  2092. Dave Raggett                                                           Page 43
  2093. HTML 3.0                                                       28th March 1995
  2094.  
  2095. Overview of Character-Level Elements
  2096.  
  2097.    Permitted Context: %text
  2098.    Content Model: %text
  2099.  
  2100.    Character level elements are used to specify either the structural
  2101.    meaning or the physical appearence of marked text without causing a
  2102.    paragraph break. Like most other elements, character level elements
  2103.    include both start and end tags. Only the characters between the
  2104.    tags are effected. For example:
  2105.  
  2106.        This is <EM>emphasized</EM> text.
  2107.  
  2108.    Highlighting elements are allowed within the content of other
  2109.    highlighting elements, but implementations are not required to
  2110.    render these nested highlighting elements distinctly from non-nested
  2111.    elements. For example, implementations may render the following two
  2112.    cases identically:
  2113.  
  2114.        plain <B>bold <I>italic</I></B>
  2115.  
  2116.        plain <B>bold </B><I>italic</I>
  2117.  
  2118.    Some character highlighting styles are more explicit than others
  2119.    about how they should be physically represented. Designate the
  2120.    information type rather than the character format wherever possible,
  2121.    unless for example, it is necessary to refer to the text as in "The
  2122.    italic parts are mandatory".
  2123.  
  2124. Permitted Attributes
  2125.  
  2126.    ID
  2127.        An SGML identifier used as the target for hypertext links or for
  2128.        naming particular elements in associated style sheets.
  2129.        Identifiers are NAME tokens and must be unique within the scope
  2130.        of the current document.
  2131.  
  2132.    LANG
  2133.        This is one of the ISO standard language abbreviations, e.g.
  2134.        "en.uk" for the variation of English spoken in the United
  2135.        Kingdom. It can be used by parsers to select language specific
  2136.        choices for quotation marks, ligatures and hypenation rules etc.
  2137.        The language attribute is composed from the two letter language
  2138.        code from ISO 639, optionally followed by a period and a two
  2139.        letter country code from ISO 3166.
  2140.  
  2141.    CLASS
  2142.        This a space separated list of SGML NAME tokens and is used to
  2143.        subclass tag names. By convention, the class names are
  2144.        interpreted hierarchically, with the most general class on the
  2145.        left and the most specific on the right, where classes are
  2146.        separated by a period. The CLASS attribute is most commonly used
  2147.        to attach a different style to some element, but it is
  2148.  
  2149. Dave Raggett                                                           Page 44
  2150. HTML 3.0                                                       28th March 1995
  2151.  
  2152.        recommended that where practical class names should be picked on
  2153.        the basis of the element's semantics, as this will permit other
  2154.        uses, such as restricting search through documents by matching
  2155.        on element class names. The conventions for choosing class names
  2156.        are outside the scope of this specification.
  2157.  
  2158. Dave Raggett                                                           Page 45
  2159. HTML 3.0                                                       28th March 1995
  2160.  
  2161. Information Type Elements
  2162.  
  2163.    EM
  2164.        The <EM> element provides typographic emphasis, typically
  2165.        italics. While <EM> and <I> often give the same effect, use <EM>
  2166.        except where it is necessary in the text to refer to the
  2167.        formatting, as in "The italic parts are mandatory". This will
  2168.        help to ensure consistency between documents from various
  2169.        sources if (for example) the reader prefers to use color in
  2170.        place of italics for emphasis.
  2171.  
  2172.    CITE
  2173.        The <CITE> element specifies a citation. Sections tagged with
  2174.        the CITE element are typically rendered in italics.
  2175.  
  2176.    STRONG
  2177.        The <STRONG> element provides strong typographic emphasis,
  2178.        typically bold.
  2179.  
  2180.    CODE
  2181.        The <CODE> element indicates an example of code; typically
  2182.        rendered in a mono-spaced font. Do not confuse with PRE.
  2183.  
  2184.    SAMP
  2185.        The <SAMP> element indicates a sequence of literal characters.
  2186.  
  2187.    KBD
  2188.        The <KBD> element indicates text typed (keyboarded) by the user.
  2189.        It might typically be used in an instruction manual.
  2190.  
  2191.    VAR
  2192.        The <VAR> element indicates a variable name, and might typically
  2193.        be used in an instruction manual.
  2194.  
  2195.    DFN
  2196.        The <DFN> element indicates the defining instance of a term.
  2197.        --New in 3.0--.
  2198.  
  2199.    Q
  2200.        The <Q> element is used for a short quotation. It is typically
  2201.        shown enclosed in quotation marks as appropriate to the language
  2202.        context. For English these would be matching double or single
  2203.        quotation marks, alternating for nested quotes. The language
  2204.        context is set by the LANG attribute. --New in 3.0--.
  2205.  
  2206.    LANG
  2207.        The <LANG> element is used to alter the language context when it
  2208.        is inappropriate to do this with other character-level elements.
  2209.        --New in 3.0--.
  2210.  
  2211.    AU
  2212.        The <AU> element indicates the name of an author. --New in
  2213.        3.0--.
  2214.  
  2215. Dave Raggett                                                           Page 46
  2216. HTML 3.0                                                       28th March 1995
  2217.  
  2218.    PERSON
  2219.        The <PERSON> element is used for names of people to allow these
  2220.        to be extracted automatically by indexing programs. --New in
  2221.        3.0--.
  2222.  
  2223.    ACRONYM
  2224.        The <ACRONYM> element is used to markup acronyms. --New in
  2225.        3.0--.
  2226.  
  2227.    ABBREV
  2228.        The <ABBREV> element is used to markup abbreviations. --New in
  2229.        3.0--.
  2230.  
  2231.    INS
  2232.        The <INS> element is used for inserted text, for instance in
  2233.        legal documents. --New in 3.0--.
  2234.  
  2235.    DEL
  2236.        The <DEL> is used for deleted text, for instance in legal
  2237.        documents. --New in 3.0--.
  2238.  
  2239.    An example:
  2240.  
  2241.    This text contains an <em>emphasized</em> word.
  2242.    <strong>Don't assume</strong> that it will be italic!
  2243.    It was made with the <code>EM</code> element. A cite is
  2244.    often italic and has no formally required structure:
  2245.    <cite>Moby Dick</cite> is a book title.
  2246.  
  2247. Dave Raggett                                                           Page 47
  2248. HTML 3.0                                                       28th March 1995
  2249.  
  2250. Font Style Elements
  2251.  
  2252.    These elements may be nested within one another. Browsers should,
  2253.    where practical, aim to combine different types of highlighting as
  2254.    required.
  2255.  
  2256.    B (Boldface)
  2257.        The <B> element specifies that the enclosed text should be
  2258.        displayed in a boldface. If this is not practical, an
  2259.        alternative mapping is allowed.
  2260.  
  2261.    I (Italic)
  2262.        The <I> element specifies that the enclosed text should be
  2263.        displayed, if practical, in an italic font (or slanted).
  2264.  
  2265.    TT (TeleType)
  2266.        The <TT> element specifies that the enclosed text should be
  2267.        displayed, if practical, in a fixed-pitch typewriter font.
  2268.  
  2269.    U (Underline)
  2270.        The <U> element specifies that the enclosed text should be
  2271.        displayed, if practical, as underlined. --Not widely supported--
  2272.  
  2273.    S (Strike through)
  2274.        The <S> element specifies that the enclosed text should be
  2275.        displayed with a horizontal line striking through the text. If
  2276.        this is not practical, an alternative mapping is allowed. --New
  2277.        in 3.0--.
  2278.  
  2279.    BIG (Big print)
  2280.        The <BIG> element specifies that the enclosed text should be
  2281.        displayed, if practical, using a big font (compared with the
  2282.        current font). --New in 3.0--.
  2283.  
  2284.    SMALL (Small print)
  2285.        The <SMALL> element specifies that the enclosed text should be
  2286.        displayed, if practical, using a small font (compared with
  2287.        normal text). --New in 3.0--.
  2288.  
  2289.    SUB (Subscript)
  2290.        The <SUB> element specifies that the enclosed text should be
  2291.        displayed as a subscript, and if practical, using a smaller font
  2292.        (compared with normal text). The ALIGN attribute for SUB is only
  2293.        meaningful within the MATH element. --New in 3.0--.
  2294.  
  2295.    SUP (Superscript)
  2296.        The <SUP> element specifies that the enclosed text should be
  2297.        displayed as a superscript, and if practical, using a smaller
  2298.        font (compared with normal text). The ALIGN attribute for SUP is
  2299.        only applicable within the MATH element. --New in 3.0--.
  2300.  
  2301.    An example:
  2302.  
  2303. Dave Raggett                                                           Page 48
  2304. HTML 3.0                                                       28th March 1995
  2305.  
  2306.    This text contains some <b><i>bold italic</i></b> text, some
  2307.    <S>struck through</S> text and some <SMALL>small print</SMALL>.
  2308.  
  2309. Dave Raggett                                                           Page 49
  2310. HTML 3.0                                                       28th March 1995
  2311.  
  2312. The IMG (Image) Element
  2313.  
  2314.    Permitted Context: %text
  2315.    Content Model: Empty!
  2316.  
  2317.    The <IMG> tag is used to incorporate in-line graphics (typically
  2318.    icons or small graphics) into an HTML document. This element is NOT
  2319.    intended for embedding other HTML text. For large figures with
  2320.    captions and text flow see FIG element.
  2321.  
  2322.    Example:
  2323.  
  2324.    <IMG SRC="tajmahal.gif" ALT="The Taj Mahal">
  2325.  
  2326.    Browsers that cannot display in-line images ignore the IMG element
  2327.    unless it contains the ALT attribute. Note that some browsers can
  2328.    display (or print) linked graphics but not in-line graphics. If the
  2329.    graphic is essential, you may want to create a link to it rather
  2330.    than to put it in-line. If the graphic is essentially decorative,
  2331.    then IMG is appropriate.
  2332.  
  2333. Permitted Attributes
  2334.  
  2335.    ID
  2336.        An SGML identifier used as the target for hypertext links or for
  2337.        naming particular elements in associated style sheets.
  2338.        Identifiers are NAME tokens and must be unique within the scope
  2339.        of the current document.
  2340.  
  2341.    LANG
  2342.        This is one of the ISO standard language abbreviations, e.g.
  2343.        "en.uk" for the variation of English spoken in the United
  2344.        Kingdom. It can be used by parsers to select language specific
  2345.        choices for quotation marks, ligatures and hypenation rules etc.
  2346.        The language attribute is composed from the two letter language
  2347.        code from ISO 639, optionally followed by a period and a two
  2348.        letter country code from ISO 3166.
  2349.  
  2350.    CLASS
  2351.        This a space separated list of SGML NAME tokens and is used to
  2352.        subclass tag names. By convention, the class names are
  2353.        interpreted hierarchically, with the most general class on the
  2354.        left and the most specific on the right, where classes are
  2355.        separated by a period. The CLASS attribute is most commonly used
  2356.        to attach a different style to some element, but it is
  2357.        recommended that where practical class names should be picked on
  2358.        the basis of the element's semantics, as this will permit other
  2359.        uses, such as restricting search through documents by matching
  2360.        on element class names. The conventions for choosing class names
  2361.        are outside the scope of this specification.
  2362.  
  2363.    SRC (Source)
  2364.        The SRC attribute specifies the URI for the image to be
  2365.  
  2366. Dave Raggett                                                           Page 50
  2367. HTML 3.0                                                       28th March 1995
  2368.  
  2369.        embedded. Its syntax is the same as that of the HREF attribute
  2370.        of the <A> tag. SRC is mandatory.
  2371.  
  2372.    MD
  2373.        Specifies a message digest or cryptographic checksum for the
  2374.        associated graphic specified by the SRC attribute. It is used
  2375.        when you want to be sure that the image is indeed the same one
  2376.        that the author intended, and hasn't been modified in any way.
  2377.        For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  2378.        specifies an MD5 checksum encoded as a base64 character string.
  2379.        The MD attribute is generally allowed for all elements which
  2380.        support URI based links.
  2381.  
  2382.    WIDTH
  2383.        Optional suggested width for the image. By default, this is
  2384.        given in pixels.
  2385.  
  2386.    HEIGHT
  2387.        Optional suggested height for the image. By default, this is
  2388.        given in pixels.
  2389.  
  2390.    UNITS
  2391.        This optional attribute specifies the units for the width and
  2392.        height attributes. It is one of: units=pixels (the default) or
  2393.        units=en (half the point size).
  2394.  
  2395.    ALIGN
  2396.        Take values TOP or MIDDLE or BOTTOM, defining whether the top or
  2397.        middle or bottom of the graphic should be aligned with the
  2398.        baseline for the text line in which the IMG element appears.
  2399.  
  2400.        With ALIGN=LEFT, the graphic will float down and over to the
  2401.        current left margin, and subsequent text will wrap around the
  2402.        right hand side of the graphic. Likewise for ALIGN=RIGHT, the
  2403.        graphic aligns with the current right margin and, and text wraps
  2404.        around the left. It is inappropriate to use this feature for
  2405.        larger graphics as these are best represented with the FIG
  2406.        element.
  2407.  
  2408.    ALT (Alternate text)
  2409.        Optional alternative text as an alternative to the graphics for
  2410.        display in text-only environments. The alt text can contain
  2411.        entities e.g. for accented characters or special symbols, but it
  2412.        can't contain markup. The latter is possible, however, with the
  2413.        FIG element.
  2414.  
  2415.    ISMAP
  2416.        An image map is a graphical map by which users can navigate
  2417.        transparently from one information resource to another. The
  2418.        ISMAP attribute identifies an image as an image map. The IMG
  2419.        element can then be used as part of the label for a hypertext
  2420.        link (see the anchor element). When the user clicks on the image
  2421.        the location clicked is sent to the server designated by the
  2422.  
  2423. Dave Raggett                                                           Page 51
  2424. HTML 3.0                                                       28th March 1995
  2425.  
  2426.        hypertext link.
  2427.  
  2428.        For example:
  2429.  
  2430.        <A HREF="http://machine/htbin/imagemap/sample">
  2431.        <IMG SRC="sample.gif" ISMAP></A>
  2432.  
  2433.    Note: There are drawbacks from having the server process clicks on
  2434.    images: the delay in getting feedback and the inability to change
  2435.    the pointer cursor on the fly as it moves over hotzones. Client-side
  2436.    processing of events is possible if one of the following applies:
  2437.  
  2438.    *   The server may allow the image map to be downloaded and
  2439.        processed locally. This should work with legacy documents
  2440.        produced using earlier versions of HTML.
  2441.  
  2442.    *   Using an image format that includes image hotzones as part of
  2443.        the file format.
  2444.  
  2445.    *   The FIG element provides for client-side image maps as a unified
  2446.        part of the figure description. It offers a number of advantages
  2447.        over IMG, including captions, markup in alt text and text flow
  2448.        around figures.
  2449.  
  2450. Dave Raggett                                                           Page 52
  2451. HTML 3.0                                                       28th March 1995
  2452.  
  2453. UL (Unordered List)
  2454.  
  2455.    Permitted Context: %Body.Content, %flow, %block
  2456.    Content Model: Optional list header (LH), followed by one or more
  2457.    list items(LI)
  2458.  
  2459.    An unordered list typically is a bulleted list of items. HTML 3.0
  2460.    gives you the ability to customise the bullets, to do without
  2461.    bullets and to wrap list items horizontally or vertically for
  2462.    multicolumn lists.
  2463.  
  2464.    The opening list tag must be <UL>. It is followed by an optional
  2465.    list header (<LH>caption</LH>) and then by the first list item
  2466.    (<LI>). For example:
  2467.  
  2468.        <UL>
  2469.          <LH>Table Fruit</LH>
  2470.          <LI>apples
  2471.          <LI>oranges
  2472.          <LI>bananas
  2473.        </UL>
  2474.  
  2475.    which could be rendered as:
  2476.  
  2477. Table Fruit
  2478.  
  2479.    *   apples
  2480.  
  2481.    *   oranges
  2482.  
  2483.    *   bananas
  2484.  
  2485.    Note: Some legacy documents may include headers or plain text before
  2486.    the first LI element. Implementors of HTML 3.0 user agents are
  2487.    advised to cater for this possibility in order to handle badly
  2488.    formed legacy documents.
  2489.  
  2490. MENU and DIR elements
  2491.  
  2492.    These elements are superceded by extensions to the UL element. User
  2493.    agents are advised to continue to support them for the sake of
  2494.    legacy documents. Both MENU and DIR consist of one or more LI
  2495.    elements, similar to UL. MENU lists are typically rendered without
  2496.    bullets in a more compact style than UL. You can get the same effect
  2497.    with <UL PLAIN>. DIR lists are used to present lists of items
  2498.    containing up to 20 characters each. Items in a DIR list are
  2499.    arranged in columns. You can get the same effect with <UL PLAIN
  2500.    WRAP=HORIZ>.
  2501.  
  2502. Permitted Attributes for the UL Element
  2503.  
  2504.    ID
  2505.        An SGML identifier used as the target for hypertext links or for
  2506.  
  2507. Dave Raggett                                                           Page 53
  2508. HTML 3.0                                                       28th March 1995
  2509.  
  2510.        naming particular elements in associated style sheets.
  2511.        Identifiers are NAME tokens and must be unique within the scope
  2512.        of the current document.
  2513.  
  2514.    LANG
  2515.        This is one of the ISO standard language abbreviations, e.g.
  2516.        "en.uk" for the variation of English spoken in the United
  2517.        Kingdom. It can be used by parsers to select language specific
  2518.        choices for quotation marks, ligatures and hypenation rules etc.
  2519.        The language attribute is composed from the two letter language
  2520.        code from ISO 639, optionally followed by a period and a two
  2521.        letter country code from ISO 3166.
  2522.  
  2523.    CLASS
  2524.        This a space separated list of SGML NAME tokens and is used to
  2525.        subclass tag names. By convention, the class names are
  2526.        interpreted hierarchically, with the most general class on the
  2527.        left and the most specific on the right, where classes are
  2528.        separated by a period. The CLASS attribute is most commonly used
  2529.        to attach a different style to some element, but it is
  2530.        recommended that where practical class names should be picked on
  2531.        the basis of the element's semantics, as this will permit other
  2532.        uses, such as restricting search through documents by matching
  2533.        on element class names. The conventions for choosing class names
  2534.        are outside the scope of this specification.
  2535.  
  2536.    CLEAR
  2537.        This attribute is common to all block-like elements. When text
  2538.        flows around a figure or table in the margin, you sometimes want
  2539.        to start an element like a header, paragraph or list below the
  2540.        figure rather than alongside it. The CLEAR attribute allows you
  2541.        to move down unconditionally:
  2542.  
  2543.        clear=left
  2544.            move down until left margin is clear
  2545.  
  2546.        clear=right
  2547.            move down until right margin is clear
  2548.  
  2549.        clear=all
  2550.            move down until both margins are clear
  2551.  
  2552.        Alternatively, you can decide to place the element alongside the
  2553.        figure just so long as there is enough room. The minimum width
  2554.        needed is specified as:
  2555.  
  2556.        clear="40 en"
  2557.            move down until there is at least 40 en units free
  2558.  
  2559. Dave Raggett                                                           Page 54
  2560. HTML 3.0                                                       28th March 1995
  2561.  
  2562.        clear="100 pixels"
  2563.            move down until there is at least 100 pixels free
  2564.  
  2565.        The style sheet (or browser defaults) may provide default
  2566.        minimum widths for each class of block-like elements.
  2567.  
  2568.    PLAIN
  2569.        The presence of this attribute suppresses the display of
  2570.        bullets, e.g. <UL PLAIN>.
  2571.  
  2572.    SRC
  2573.        Specifies an image for use as a bullet. The image is specified
  2574.        as a URI. This attribute may appear together with the MD
  2575.        attribute.
  2576.  
  2577.    MD
  2578.        Specifies a message digest or cryptographic checksum for the
  2579.        associated graphic specified by the SRC attribute. It is used
  2580.        when you want to be sure that a linked object is indeed the same
  2581.        one that the author intended, and hasn't been modified in any
  2582.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  2583.        specifies an MD5 checksum encoded as a base64 character string.
  2584.        The MD attribute is generally allowed for all elements which
  2585.        support URI based links.
  2586.  
  2587.    DINGBAT
  2588.        Specifies an iconic image for use as a bullet. The icon is
  2589.        specified as an entity name. A list of standard icon entity
  2590.        names for HTML 3.0 is given in an appendix of this
  2591.        specification, e.g. folder is the entity name for an icon
  2592.        denoting a directory or folder.
  2593.  
  2594.    WRAP
  2595.        The WRAP attribute is used for multicolumn lists. Use wrap=vert
  2596.        if you want to arrange the list items down the page before
  2597.        wrapping to the next column. Use wrap=horiz if you want to
  2598.        arrange the items across the page (less useful). The user agent
  2599.        is responsible for determining how many columns are appropriate.
  2600.  
  2601.    COMPACT
  2602.        The presence of this attribute indicates the user agent should
  2603.        use reduced interitem spacing. In practice, there are several
  2604.        ways to increase the compactness of lists: reduced vertical
  2605.        interitem spacing, smaller font size, or even to avoid line
  2606.        breaks between items. This is best handled through associated
  2607.        style sheets and the class attribute.
  2608.  
  2609. Dave Raggett                                                           Page 55
  2610. HTML 3.0                                                       28th March 1995
  2611.  
  2612. LH (List Header)
  2613.  
  2614.    Permitted Context: Immediately following UL, OL or DL
  2615.    Content Model: %text
  2616.  
  2617.    The LH or list header element is used to provide a title for a list.
  2618.    User agents can use this in place of the full list when a mechanism
  2619.    is provided to fold and unfold nested lists.
  2620.  
  2621. Permitted Attributes for the LH Element
  2622.  
  2623.    ID
  2624.        An SGML identifier used as the target for hypertext links or for
  2625.        naming particular elements in associated style sheets.
  2626.        Identifiers are NAME tokens and must be unique within the scope
  2627.        of the current document.
  2628.  
  2629.    LANG
  2630.        This is one of the ISO standard language abbreviations, e.g.
  2631.        "en.uk" for the variation of English spoken in the United
  2632.        Kingdom. It can be used by parsers to select language specific
  2633.        choices for quotation marks, ligatures and hypenation rules etc.
  2634.        The language attribute is composed from the two letter language
  2635.        code from ISO 639, optionally followed by a period and a two
  2636.        letter country code from ISO 3166.
  2637.  
  2638.    CLASS
  2639.        This a space separated list of SGML NAME tokens and is used to
  2640.        subclass tag names. By convention, the class names are
  2641.        interpreted hierarchically, with the most general class on the
  2642.        left and the most specific on the right, where classes are
  2643.        separated by a period. The CLASS attribute is most commonly used
  2644.        to attach a different style to some element, but it is
  2645.        recommended that where practical class names should be picked on
  2646.        the basis of the element's semantics, as this will permit other
  2647.        uses, such as restricting search through documents by matching
  2648.        on element class names. The conventions for choosing class names
  2649.        are outside the scope of this specification.
  2650.  
  2651. Dave Raggett                                                           Page 56
  2652. HTML 3.0                                                       28th March 1995
  2653.  
  2654. LI (List Item)
  2655.  
  2656.    Permitted Context: UL or OL
  2657.    Content Model: %flow
  2658.  
  2659.    The LI or list item element is used for items in both ordered and
  2660.    unordered lists.
  2661.  
  2662.    Note: The content model for list items is quite broad, including
  2663.    paragraphs, lists, performatted text, forms, tables, figures and
  2664.    admonishments. Headers are not permitted, although implementors of
  2665.    HTML 3.0 user agents are advised to cater for this possibility in
  2666.    order to handle badly formed legacy documents. If %html.recommended
  2667.    is active, the HTML 3.0 DTD expects you to enclose plain text in a
  2668.    block element such as <P>
  2669.  
  2670. Permitted Attributes for the LI Element
  2671.  
  2672.    ID
  2673.        An SGML identifier used as the target for hypertext links or for
  2674.        naming particular elements in associated style sheets.
  2675.        Identifiers are NAME tokens and must be unique within the scope
  2676.        of the current document.
  2677.  
  2678.    LANG
  2679.        This is one of the ISO standard language abbreviations, e.g.
  2680.        "en.uk" for the variation of English spoken in the United
  2681.        Kingdom. It can be used by parsers to select language specific
  2682.        choices for quotation marks, ligatures and hypenation rules etc.
  2683.        The language attribute is composed from the two letter language
  2684.        code from ISO 639, optionally followed by a period and a two
  2685.        letter country code from ISO 3166.
  2686.  
  2687.    CLASS
  2688.        This a space separated list of SGML NAME tokens and is used to
  2689.        subclass tag names. By convention, the class names are
  2690.        interpreted hierarchically, with the most general class on the
  2691.        left and the most specific on the right, where classes are
  2692.        separated by a period. The CLASS attribute is most commonly used
  2693.        to attach a different style to some element, but it is
  2694.        recommended that where practical class names should be picked on
  2695.        the basis of the element's semantics, as this will permit other
  2696.        uses, such as restricting search through documents by matching
  2697.        on element class names. The conventions for choosing class names
  2698.        are outside the scope of this specification.
  2699.  
  2700.    CLEAR
  2701.        This attribute is common to all block-like elements. When text
  2702.        flows around a figure or table in the margin, you sometimes want
  2703.        to start the list item below the figure rather than alongside
  2704.        it. The CLEAR attribute allows you to move down unconditionally:
  2705.  
  2706. Dave Raggett                                                           Page 57
  2707. HTML 3.0                                                       28th March 1995
  2708.  
  2709.        clear=left
  2710.            move down until left margin is clear
  2711.  
  2712.        clear=right
  2713.            move down until right margin is clear
  2714.  
  2715.        clear=all
  2716.            move down until both margins are clear
  2717.  
  2718.        Alternatively, you can decide to place the element alongside the
  2719.        figure just so long as there is enough room. The minimum width
  2720.        needed is specified as:
  2721.  
  2722.        clear="40 en"
  2723.            move down until there is at least 40 en units free
  2724.  
  2725.        clear="100 pixels"
  2726.            move down until there is at least 100 pixels free
  2727.  
  2728.        The style sheet (or browser defaults) may provide default
  2729.        minimum widths for each class of block-like elements.
  2730.  
  2731.    SRC
  2732.        Specifies an image for use as a bullet. The image is specified
  2733.        as a URI. This attribute may appear together with the MD
  2734.        attribute.
  2735.  
  2736.    MD
  2737.        Specifies a message digest or cryptographic checksum for the
  2738.        associated graphic specified by the SRC attribute. It is used
  2739.        when you want to be sure that a linked object is indeed the same
  2740.        one that the author intended, and hasn't been modified in any
  2741.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  2742.        specifies an MD5 checksum encoded as a base64 character string.
  2743.        The MD attribute is generally allowed for all elements which
  2744.        support URI based links.
  2745.  
  2746.    DINGBAT
  2747.        Specifies an iconic image for use as a bullet. The icon is
  2748.        specified as an entity name. A list of standard icon entity
  2749.        names for HTML 3.0 is given in an appendix of this
  2750.        specification, e.g. folder is the entity name for an icon
  2751.        denoting a directory or folder.
  2752.  
  2753.    SKIP
  2754.        Increments the sequence number before rendering the element. It
  2755.        is used when headers have been left out of the sequence. For
  2756.        instance, SKIP=3 advances the sequence number past 3 omitted
  2757.        items.
  2758.  
  2759. Dave Raggett                                                           Page 58
  2760. HTML 3.0                                                       28th March 1995
  2761.  
  2762. OL (Ordered List)
  2763.  
  2764.    Permitted Context: %Body.Content, %flow, %block
  2765.    Content Model: Optional list header (LH), followed by one or more
  2766.    list items(LI)
  2767.  
  2768.    An ordered list typically is a numbered list of items. HTML 3.0
  2769.    gives you the ability to control the sequence number - to continue
  2770.    where the previous list left off, or to start at a particular
  2771.    number. The numbering style is left to associated style sheets, e.g.
  2772.    whether nested lists contribute to a compound item number, e.g.
  2773.    "3.1.5", or whether numbers are rendered as arabic, upper or lower
  2774.    case roman numerals or using the numbering scheme appropriate to the
  2775.    language context.
  2776.  
  2777.    The opening list tag must be <OL>. It is followed by an optional
  2778.    list header (<LH>caption</LH>) and then by the first list item
  2779.    (<LI>). For example:
  2780.  
  2781.        <OL>
  2782.          <LH>Meeting Agenda</LH>
  2783.          <LI>Minutes of the last meeting
  2784.          <LI>Do we need yet more meetings?
  2785.          <LI>Any other business
  2786.        </OL>
  2787.  
  2788.    which could be rendered as:
  2789.  
  2790. Meeting Agenda
  2791.  
  2792.    1.  Minutes of the last meeting
  2793.  
  2794.    2.  Do we need yet more meetings?
  2795.  
  2796.    3.  Any other business
  2797.  
  2798.    Note: Some legacy documents may include headers or plain text before
  2799.    the first LI element. Implementors of HTML 3.0 user agents are
  2800.    advised to cater for this possibility in order to handle badly
  2801.    formed legacy documents.
  2802.  
  2803. Permitted Attributes for the OL Element
  2804.  
  2805.    ID
  2806.        An SGML identifier used as the target for hypertext links or for
  2807.        naming particular elements in associated style sheets.
  2808.        Identifiers are NAME tokens and must be unique within the scope
  2809.        of the current document.
  2810.  
  2811.    LANG
  2812.        This is one of the ISO standard language abbreviations, e.g.
  2813.        "en.uk" for the variation of English spoken in the United
  2814.        Kingdom. It can be used by parsers to select language specific
  2815.  
  2816. Dave Raggett                                                           Page 59
  2817. HTML 3.0                                                       28th March 1995
  2818.  
  2819.        choices for quotation marks, ligatures and hypenation rules etc.
  2820.        The language attribute is composed from the two letter language
  2821.        code from ISO 639, optionally followed by a period and a two
  2822.        letter country code from ISO 3166.
  2823.  
  2824.    CLASS
  2825.        This a space separated list of SGML NAME tokens and is used to
  2826.        subclass tag names. By convention, the class names are
  2827.        interpreted hierarchically, with the most general class on the
  2828.        left and the most specific on the right, where classes are
  2829.        separated by a period. The CLASS attribute is most commonly used
  2830.        to attach a different style to some element, but it is
  2831.        recommended that where practical class names should be picked on
  2832.        the basis of the element's semantics, as this will permit other
  2833.        uses, such as restricting search through documents by matching
  2834.        on element class names. The conventions for choosing class names
  2835.        are outside the scope of this specification.
  2836.  
  2837.    CLEAR
  2838.        This attribute is common to all block-like elements. When text
  2839.        flows around a figure or table in the margin, you sometimes want
  2840.        to start an element like a header, paragraph or list below the
  2841.        figure rather than alongside it. The CLEAR attribute allows you
  2842.        to move down unconditionally:
  2843.  
  2844.        clear=left
  2845.            move down until left margin is clear
  2846.  
  2847.        clear=right
  2848.            move down until right margin is clear
  2849.  
  2850.        clear=all
  2851.            move down until both margins are clear
  2852.  
  2853.        Alternatively, you can decide to place the element alongside the
  2854.        figure just so long as there is enough room. The minimum width
  2855.        needed is specified as:
  2856.  
  2857.        clear="40 en"
  2858.            move down until there is at least 40 en units free
  2859.  
  2860.        clear="100 pixels"
  2861.            move down until there is at least 100 pixels free
  2862.  
  2863.        The style sheet (or browser defaults) may provide default
  2864.        minimum widths for each class of block-like elements.
  2865.  
  2866.    CONTINUE
  2867.        Don't restart the sequence number, i.e. continue where previous
  2868.  
  2869. Dave Raggett                                                           Page 60
  2870. HTML 3.0                                                       28th March 1995
  2871.  
  2872.        list left off, e.g. <OL CONTINUE>
  2873.  
  2874.    SEQNUM
  2875.        Set the starting sequence number for the first item, e.g. <OL
  2876.        SEQNUM=23>
  2877.  
  2878.    COMPACT
  2879.        The presence of this attribute indicates the user agent should
  2880.        use reduced interitem spacing. In practice, there are several
  2881.        ways to increase the compactness of lists: reduced vertical
  2882.        interitem spacing, smaller font size, or even to avoid line
  2883.        breaks between items. This is best handled through associated
  2884.        style sheets and the class attribute.
  2885.  
  2886. Dave Raggett                                                           Page 61
  2887. HTML 3.0                                                       28th March 1995
  2888.  
  2889. DL - Definition Lists
  2890.  
  2891.    Permitted Context: %Body.Content, %flow, %block
  2892.    Content Model: Optional list header(LH), followed by one or more
  2893.    terms(DT) and definitions(DD).
  2894.  
  2895.    A definition list is a list of terms and corresponding definitions.
  2896.    Definition lists are typically formatted with the term on the left
  2897.    with the definition following on the right or on the next line. The
  2898.    definition text is typically indented with respect to the term.
  2899.  
  2900.    An alternative format places the term left aligned in a wide margin
  2901.    and the definition on one or more lines to the right of the term. If
  2902.    the DT term does not fit in the DT column (one third of the display
  2903.    area), it may be extended across the page with the DD section moved
  2904.    to the next line, or it may be wrapped onto successive lines of the
  2905.    left hand column.
  2906.  
  2907.    The opening list tag must be <DL>. It is followed by an optional
  2908.    list header (<LH>caption</LH>) and then by term names (<DT>) and
  2909.    definitions (<DD>). For example:
  2910.  
  2911.    <DL>
  2912.    <LH>List Header</LH>
  2913.    <DT>Term 1<dd>This is the definition of the first term.
  2914.    <DT>Term 2<dd>This is the definition of the second term.
  2915.    </DL>
  2916.  
  2917.    which could be rendered as:
  2918.  
  2919. List Header
  2920.  
  2921.    Term 1
  2922.        This is the definition of the first term.
  2923.  
  2924.    Term 2
  2925.        This is the definition of the second term.
  2926.  
  2927.    The definition list element can take the COMPACT attribute, which
  2928.    suggests that a compact rendering be used, and is appropriate if the
  2929.    list elements are small and/or the entire list is large.
  2930.  
  2931.    Note: Use the NOTE element when you want to have an indented note.
  2932.    The practice of using <DD> elements without corresponding <DT>
  2933.    elements is deprecated.
  2934.  
  2935. Permitted Attributes for the DL Element
  2936.  
  2937.    ID
  2938.        An SGML identifier used as the target for hypertext links or for
  2939.        naming particular elements in associated style sheets.
  2940.        Identifiers are NAME tokens and must be unique within the scope
  2941.        of the current document.
  2942.  
  2943. Dave Raggett                                                           Page 62
  2944. HTML 3.0                                                       28th March 1995
  2945.  
  2946.    LANG
  2947.        This is one of the ISO standard language abbreviations, e.g.
  2948.        "en.uk" for the variation of English spoken in the United
  2949.        Kingdom. It can be used by parsers to select language specific
  2950.        choices for quotation marks, ligatures and hypenation rules etc.
  2951.        The language attribute is composed from the two letter language
  2952.        code from ISO 639, optionally followed by a period and a two
  2953.        letter country code from ISO 3166.
  2954.  
  2955.    CLASS
  2956.        This a space separated list of SGML NAME tokens and is used to
  2957.        subclass tag names. By convention, the class names are
  2958.        interpreted hierarchically, with the most general class on the
  2959.        left and the most specific on the right, where classes are
  2960.        separated by a period. The CLASS attribute is most commonly used
  2961.        to attach a different style to some element, but it is
  2962.        recommended that where practical class names should be picked on
  2963.        the basis of the element's semantics, as this will permit other
  2964.        uses, such as restricting search through documents by matching
  2965.        on element class names. The conventions for choosing class names
  2966.        are outside the scope of this specification.
  2967.  
  2968.    CLEAR
  2969.        This attribute is common to all block-like elements. When text
  2970.        flows around a figure or table in the margin, you sometimes want
  2971.        to start an element like a header, paragraph or list below the
  2972.        figure rather than alongside it. The CLEAR attribute allows you
  2973.        to move down unconditionally:
  2974.  
  2975.        clear=left
  2976.            move down until left margin is clear
  2977.  
  2978.        clear=right
  2979.            move down until right margin is clear
  2980.  
  2981.        clear=all
  2982.            move down until both margins are clear
  2983.  
  2984.        Alternatively, you can decide to place the element alongside the
  2985.        figure just so long as there is enough room. The minimum width
  2986.        needed is specified as:
  2987.  
  2988.        clear="40 en"
  2989.            move down until there is at least 40 en units free
  2990.  
  2991.        clear="100 pixels"
  2992.            move down until there is at least 100 pixels free
  2993.  
  2994. Dave Raggett                                                           Page 63
  2995. HTML 3.0                                                       28th March 1995
  2996.  
  2997.        The style sheet (or browser defaults) may provide default
  2998.        minimum widths for each class of block-like elements.
  2999.  
  3000.    COMPACT
  3001.        The presence of this attribute indicates the user agent should
  3002.        use reduced interitem spacing. The COMPACT attribute may also
  3003.        reduce the width of the left-hand (DT) column.
  3004.  
  3005.        In practice, there are several ways to increase the compactness
  3006.        of lists: reduced vertical interitem spacing, smaller font size,
  3007.        or even to avoid line breaks between items. This is best handled
  3008.        through associated style sheets and the class attribute.
  3009.  
  3010.        The opening list tag must be DL COMPACT. It must be immediately
  3011.        followed by the first term (DT). For example:
  3012.  
  3013.        <DL compact>
  3014.        <DT>Term<DD>This is the first definition in compact format.
  3015.        <DT>Term<DD>This is the second definition in compact format.
  3016.        </DL>
  3017.  
  3018. Dave Raggett                                                           Page 64
  3019. HTML 3.0                                                       28th March 1995
  3020.  
  3021. DT - Term Name
  3022.  
  3023.    Permitted Context: DL
  3024.    Content Model: %text
  3025.  
  3026.    The DT tag element specifies a term name, and you can have several
  3027.    terms per DD element.
  3028.  
  3029.    Note: Term names are restricted to character level markup only,
  3030.    including epmhasis, inline images and footnotes. Paragraph tags and
  3031.    other block-like element such as headers are not permitted, although
  3032.    implementors of HTML 3.0 user agents are advised to cater for this
  3033.    possibility in order to handle badly formed legacy documents.
  3034.  
  3035. Permitted Attributes for the DT Element
  3036.  
  3037.    ID
  3038.        An SGML identifier used as the target for hypertext links or for
  3039.        naming particular elements in associated style sheets.
  3040.        Identifiers are NAME tokens and must be unique within the scope
  3041.        of the current document.
  3042.  
  3043.    LANG
  3044.        This is one of the ISO standard language abbreviations, e.g.
  3045.        "en.uk" for the variation of English spoken in the United
  3046.        Kingdom. It can be used by parsers to select language specific
  3047.        choices for quotation marks, ligatures and hypenation rules etc.
  3048.        The language attribute is composed from the two letter language
  3049.        code from ISO 639, optionally followed by a period and a two
  3050.        letter country code from ISO 3166.
  3051.  
  3052.    CLASS
  3053.        This a space separated list of SGML NAME tokens and is used to
  3054.        subclass tag names. By convention, the class names are
  3055.        interpreted hierarchically, with the most general class on the
  3056.        left and the most specific on the right, where classes are
  3057.        separated by a period. The CLASS attribute is most commonly used
  3058.        to attach a different style to some element, but it is
  3059.        recommended that where practical class names should be picked on
  3060.        the basis of the element's semantics, as this will permit other
  3061.        uses, such as restricting search through documents by matching
  3062.        on element class names. The conventions for choosing class names
  3063.        are outside the scope of this specification.
  3064.  
  3065.    CLEAR
  3066.        When text flows around a figure or table in the margin, you
  3067.        sometimes want to start the term name below the figure rather
  3068.        than alongside it. The CLEAR attribute allows you to move down unconditionally:
  3069.  
  3070.        clear=left
  3071.            move down until left margin is clear
  3072.  
  3073. Dave Raggett                                                           Page 65
  3074. HTML 3.0                                                       28th March 1995
  3075.  
  3076.        clear=right
  3077.            move down until right margin is clear
  3078.  
  3079.        clear=all
  3080.            move down until both margins are clear
  3081.  
  3082.        Alternatively, you can decide to place the element alongside the
  3083.        figure just so long as there is enough room. The minimum width
  3084.        needed is specified as:
  3085.  
  3086.        clear="40 en"
  3087.            move down until there is at least 40 en units free
  3088.  
  3089.        clear="100 pixels"
  3090.            move down until there is at least 100 pixels free
  3091.  
  3092.        The style sheet (or browser defaults) may provide default
  3093.        minimum widths for each class of block-like elements.
  3094.  
  3095. Dave Raggett                                                           Page 66
  3096. HTML 3.0                                                       28th March 1995
  3097.  
  3098. DD - Term Definition
  3099.  
  3100.    Permitted Context: DL
  3101.    Content Model: %flow
  3102.  
  3103.    The DD tag element specifies a term definition, and follows one or
  3104.    more DT elements.
  3105.  
  3106.    Note: The content model for term definitions is quite broad,
  3107.    including paragraphs, lists, performatted text, forms, tables,
  3108.    figures and admonishments. Headers are not permitted, although
  3109.    implementors of HTML 3.0 user agents are advised to cater for this
  3110.    possibility in order to handle badly formed legacy documents. If
  3111.    %html.recommended is active, the HTML 3.0 DTD expects you to enclose
  3112.    plain text in a block element such as <P>
  3113.  
  3114. Permitted Attributes for the DD Element
  3115.  
  3116.    ID
  3117.        An SGML identifier used as the target for hypertext links or for
  3118.        naming particular elements in associated style sheets.
  3119.        Identifiers are NAME tokens and must be unique within the scope
  3120.        of the current document.
  3121.  
  3122.    LANG
  3123.        This is one of the ISO standard language abbreviations, e.g.
  3124.        "en.uk" for the variation of English spoken in the United
  3125.        Kingdom. It can be used by parsers to select language specific
  3126.        choices for quotation marks, ligatures and hypenation rules etc.
  3127.        The language attribute is composed from the two letter language
  3128.        code from ISO 639, optionally followed by a period and a two
  3129.        letter country code from ISO 3166.
  3130.  
  3131.    CLASS
  3132.        This a space separated list of SGML NAME tokens and is used to
  3133.        subclass tag names. By convention, the class names are
  3134.        interpreted hierarchically, with the most general class on the
  3135.        left and the most specific on the right, where classes are
  3136.        separated by a period. The CLASS attribute is most commonly used
  3137.        to attach a different style to some element, but it is
  3138.        recommended that where practical class names should be picked on
  3139.        the basis of the element's semantics, as this will permit other
  3140.        uses, such as restricting search through documents by matching
  3141.        on element class names. The conventions for choosing class names
  3142.        are outside the scope of this specification.
  3143.  
  3144.    CLEAR
  3145.        When text flows around a figure or table in the margin, you
  3146.        sometimes want to start term definition below the figure rather
  3147.        than alongside it. The CLEAR attribute allows you to move down unconditionally:
  3148.  
  3149. Dave Raggett                                                           Page 67
  3150. HTML 3.0                                                       28th March 1995
  3151.  
  3152.        clear=left
  3153.            move down until left margin is clear
  3154.  
  3155.        clear=right
  3156.            move down until right margin is clear
  3157.  
  3158.        clear=all
  3159.            move down until both margins are clear
  3160.  
  3161.        Alternatively, you can decide to place the element alongside the
  3162.        figure just so long as there is enough room. The minimum width
  3163.        needed is specified as:
  3164.  
  3165.        clear="40 en"
  3166.            move down until there is at least 40 en units free
  3167.  
  3168.        clear="100 pixels"
  3169.            move down until there is at least 100 pixels free
  3170.  
  3171.        The style sheet (or browser defaults) may provide default
  3172.        minimum widths for each class of block-like elements.
  3173.  
  3174. Dave Raggett                                                           Page 68
  3175. HTML 3.0                                                       28th March 1995
  3176.  
  3177. Figures
  3178.  
  3179.    Permitted Context: %body.content, %flow, %block
  3180.    Content Model: Optional OVERLAYs followed by an optional CAPTION,
  3181.    then %body.content and finally an optional CREDIT
  3182.  
  3183.    The FIG element is used for figures. Subsequent elements will be
  3184.    flowed around the figure if there is sufficient room. This behaviour
  3185.    is disabled when the align attribute is --center-- (the default) or
  3186.    --justify--.
  3187.  
  3188.    Figure overlays provide for more effective use of caching as small
  3189.    changes to a figure in a subsequent document incur only the penalty
  3190.    of downloading the overlays and not the larger base figure, as the
  3191.    latter is already in the cache.
  3192.  
  3193.    The figure description text is intended to convey the content of the
  3194.    figure for people with non-graphical user agents, while the figure
  3195.    caption and credit are rendered on both graphical and non-graphical
  3196.    user agents. The FIG element improves on the IMG element by allowing
  3197.    authors to use markup for the description text. The content model
  3198.    allows authors to include headers, which is appropriate when the
  3199.    headers are part of the image data. It also allows graphical
  3200.    hypertext links to be specified in the markup and interpreted by the
  3201.    user agent rather than the server.
  3202.  
  3203.    The anchor elements in the figure description text play a dual role:
  3204.    Non-graphical user agents show conventional hypertext links, while
  3205.    for graphical user agents, the same anchor elements specify
  3206.    graphical hypertext links, with the SHAPE attribute designating the
  3207.    hotzones. This is designed to simplify the task of authors writing
  3208.    for both audiences. Hopefully, the FIG element will help to combat
  3209.    the tendency for authors to forget about people limited to terminal
  3210.    access or the visually impaired relying on text to speech, as the
  3211.    new element forces you to write description text to define the
  3212.    graphical hypertext links.
  3213.  
  3214.    For some applications the hotzones are dynamically defined by
  3215.    programs running on the server. HTML 3.0 allows clicks and drags to
  3216.    be passed to the server with the IMAGEMAP attribute. Hotzones may
  3217.    also be specified as part of the graphics data format e.g. as in
  3218.    VRML. Hotzones in the FIG element take precedence over hotzones in
  3219.    the graphics data, which in turn take precedence over passing events
  3220.    to a server imagemap program.
  3221.  
  3222.    Hotzones in overlay graphics data take precedence over hotzones in
  3223.    figure data. Similarly, the imagemap attribute in overlays takes
  3224.    precedence over the imagemap attribute for the figure. For a group
  3225.    of overlapping overlays the precedence is determined by the order
  3226.    the OVERLAY elements appear within the FIG element. Later overlays
  3227.    take precedence over earlier ones.
  3228.  
  3229. Examples
  3230.  
  3231. Dave Raggett                                                           Page 69
  3232. HTML 3.0                                                       28th March 1995
  3233.  
  3234.    Photographic image with caption and credits:
  3235.  
  3236.    <FIG SRC="nicodamus.jpeg">
  3237.      <CAPTION>Ground dweller: <I>Nicodamus bicolor</I>
  3238.      builds silk snares</CAPTION>
  3239.      <P>A small hairy spider light fleshy red in color with a brown abdomen.
  3240.      <CREDIT>J. A. L. Cooke/OSF</CREDIT>
  3241.    </FIG>
  3242.  
  3243.    Company home page:
  3244.  
  3245.    <FIG SRC="mainmenu.gif">
  3246.     <H1>Access HP from Hewlett Packard</H1>
  3247.     <P>Select between:
  3248.     <UL>
  3249.      <LI><A HREF="guide.html" SHAPE="rect 30,200,60,16">Access Guide</A>
  3250.      <LI><A HREF="about.html" SHAPE="rect 100,200,50,16">About HP</A>
  3251.      <LI><A HREF="guide.html" SHAPE="rect 160,200,30,16">News</A>
  3252.      <LI><A HREF="guide.html" SHAPE="rect 200,200,50,16">Products</A>
  3253.      <LI><A HREF="guide.html" SHAPE="rect 260,200,80,16">Worldwide Contacts</A>
  3254.     </UL>
  3255.    </FIG>
  3256.  
  3257.    Aerial photograph with map overlay:
  3258.  
  3259.    <FIG SRC="newyork.jpeg">
  3260.      <OVERLAY SRC="map.gif">
  3261.      <P>New York from the air!
  3262.    </FIG>
  3263.  
  3264. Permitted Attributes
  3265.  
  3266.    ID
  3267.        An SGML identifier used as the target for hypertext links or for
  3268.        naming particular elements in associated style sheets.
  3269.        Identifiers are NAME tokens and must be unique within the scope
  3270.        of the current document.
  3271.  
  3272.    LANG
  3273.        This is one of the ISO standard language abbreviations, e.g.
  3274.        "en.uk" for the variation of English spoken in the United
  3275.        Kingdom. It can be used by parsers to select language specific
  3276.        choices for quotation marks, ligatures and hypenation rules etc.
  3277.        The language attribute is composed from the two letter language
  3278.        code from ISO 639, optionally followed by a period and a two
  3279.        letter country code from ISO 3166.
  3280.  
  3281.    CLASS
  3282.        This a space separated list of SGML NAME tokens and is used to
  3283.        subclass tag names. By convention, the class names are
  3284.        interpreted hierarchically, with the most general class on the
  3285.        left and the most specific on the right, where classes are
  3286.  
  3287. Dave Raggett                                                           Page 70
  3288. HTML 3.0                                                       28th March 1995
  3289.  
  3290.        separated by a period. The CLASS attribute is most commonly used
  3291.        to attach a different style to some element, but it is
  3292.        recommended that where practical class names should be picked on
  3293.        the basis of the element's semantics, as this will permit other
  3294.        uses, such as restricting search through documents by matching
  3295.        on element class names. The conventions for choosing class names
  3296.        are outside the scope of this specification.
  3297.  
  3298.    CLEAR
  3299.        When there is already a figure or table in the margin, you
  3300.        sometimes want to position another figure below the figure in
  3301.        the margin rather than alongside it. The CLEAR attribute allows
  3302.        you to move down unconditionally:
  3303.  
  3304.        clear=left
  3305.            move down until left margin is clear
  3306.  
  3307.        clear=right
  3308.            move down until right margin is clear
  3309.  
  3310.        clear=all
  3311.            move down until both margins are clear
  3312.  
  3313.        Alternatively, you can decide to place the figure alongside the
  3314.        figure in the margin just so long as there is enough room. The
  3315.        minimum width needed is specified as:
  3316.  
  3317.        clear="40 en"
  3318.            move down until there is at least 40 en units free
  3319.  
  3320.        clear="100 pixels"
  3321.            move down until there is at least 100 pixels free
  3322.  
  3323.        The style sheet (or browser defaults) may provide default
  3324.        minimum widths for each class of block-like elements.
  3325.  
  3326.    NOFLOW
  3327.        The presence of this attribute disables text flow around the
  3328.        figure. It avoids the need to use the CLEAR or NEEDS attributes
  3329.        on the following element.
  3330.  
  3331.    SRC
  3332.        Specifies the figure's graphical content. The image is specified
  3333.        as a URI. This attribute may appear together with the MD
  3334.        attribute.
  3335.  
  3336.    MD
  3337.        Specifies a message digest or cryptographic checksum for the
  3338.        associated graphic specified by the SRC attribute. It is used
  3339.  
  3340. Dave Raggett                                                           Page 71
  3341. HTML 3.0                                                       28th March 1995
  3342.  
  3343.        when you want to be sure that a linked object is indeed the same
  3344.        one that the author intended, and hasn't been modified in any
  3345.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  3346.        specifies an MD5 checksum encoded as a base64 character string.
  3347.        The MD attribute is generally allowed for all elements which
  3348.        support URI based links.
  3349.  
  3350.    ALIGN
  3351.        Specifies horizontal alignment of the figure:
  3352.  
  3353.        BLEEDLEFT
  3354.            Flush left with the left (window) border.
  3355.  
  3356.        LEFT
  3357.            Flush left with the left text margin.
  3358.  
  3359.        CENTER
  3360.            The figure is centered between the text margins and text
  3361.            flow around the figure is disabled. This is the default
  3362.            setting for ALIGN.
  3363.  
  3364.        RIGHT
  3365.            Flush right with the right text margin.
  3366.  
  3367.        BLEEDRIGHT
  3368.            Flush right with the right (window) border
  3369.  
  3370.        JUSTIFY
  3371.            When applicable the figure should be magnified or reduced to
  3372.            fill the space between the left and right text margins. Text
  3373.            flow around the figure is disabled for align=justify.
  3374.  
  3375.    WIDTH
  3376.        Specifies the desired width in pixels or en units (according to
  3377.        the value of the UNITS attribute). User agents may scale the
  3378.        figure image to match this width.
  3379.  
  3380.    HEIGHT
  3381.        Specifies the desired height in pixels or en units (according to
  3382.        the value of the UNITS attribute). User agents may scale the
  3383.        figure image to match this height.
  3384.  
  3385.    UNITS
  3386.        Specifies the choice of units for width and height. units=pixels
  3387.        (the default) specifies pixels, while units=en specifies en
  3388.        units. The en unit is a typographical unit equal to half the
  3389.        point size.
  3390.  
  3391.    IMAGEMAP
  3392.        Specifies a URI for processing image clicks and drags.
  3393.  
  3394. Dave Raggett                                                           Page 72
  3395. HTML 3.0                                                       28th March 1995
  3396.  
  3397. Figure Overlays
  3398.  
  3399.    Permitted Context: start of FIG element
  3400.    Content Model: Empty!
  3401.  
  3402.    The OVERLAY element is used to overlay images on top of a base
  3403.    figure. Figure overlays provide for more effective use of caching as
  3404.    small changes to a figure in a subsequent document incur only the
  3405.    penalty of downloading the overlays and not the larger base figure,
  3406.    as the latter is already in the cache. The overlay can be offset
  3407.    from the top left corner of the base image.
  3408.  
  3409. Permitted Attributes
  3410.  
  3411.    SRC
  3412.        Specifies the overlay image as a URI. This attribute may appear
  3413.        together with the MD attribute.
  3414.  
  3415.    MD
  3416.        Specifies a message digest or cryptographic checksum for the
  3417.        associated graphic specified by the SRC attribute. It is used
  3418.        when you want to be sure that a linked object is indeed the same
  3419.        one that the author intended, and hasn't been modified in any
  3420.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  3421.        specifies an MD5 checksum encoded as a base64 character string.
  3422.        The MD attribute is generally allowed for all elements which
  3423.        support URI based links.
  3424.  
  3425.    UNITS
  3426.        Specifies the choice of units for width and height: units=pixels
  3427.        (the default) specifies pixels, while units=en specifies en
  3428.        units (a typographical unit equal to half the point size).
  3429.  
  3430.    X
  3431.        The X offset from the top left corner of the base image. X
  3432.        increases to the right, and is given in pixels or en units
  3433.        (according to the value of the UNITS attribute).
  3434.  
  3435.    Y
  3436.        The Y offset from the top left corner of the base image. Y
  3437.        increases downwards, and is given in pixels or en units
  3438.        (according to the value of the UNITS attribute).
  3439.  
  3440.    WIDTH
  3441.        Specifies the desired width in pixels or en units (according to
  3442.        the value of the UNITS attribute). User agents may scale the
  3443.        figure image to match this width.
  3444.  
  3445.    HEIGHT
  3446.        Specifies the desired height in pixels or en units (according to
  3447.        the value of the UNITS attribute). User agents may scale the
  3448.        figure image to match this height.
  3449.  
  3450. Dave Raggett                                                           Page 73
  3451. HTML 3.0                                                       28th March 1995
  3452.  
  3453.    IMAGEMAP
  3454.        Specifies a URI for processing image clicks and drags.
  3455.  
  3456. Dave Raggett                                                           Page 74
  3457. HTML 3.0                                                       28th March 1995
  3458.  
  3459. Captions
  3460.  
  3461.    Permitted Context: TABLE or FIG
  3462.    Content Model: %text
  3463.  
  3464.    The CAPTION element is used to label a table or figure. Use the
  3465.    align attribute to specify the position of the caption relative to
  3466.    the table/figure. For example:
  3467.  
  3468.        <CAPTION ALIGN=LEFT>The Niagara Falls</CAPTION>
  3469.  
  3470.    --Should we provide separate align and valign attributes for
  3471.    controlling the horizontal and vertical positioning respectively?--
  3472.  
  3473. Permitted Attributes
  3474.  
  3475.    ID
  3476.        An SGML identifier used as the target for hypertext links or for
  3477.        naming particular elements in associated style sheets.
  3478.        Identifiers are NAME tokens and must be unique within the scope
  3479.        of the current document.
  3480.  
  3481.    LANG
  3482.        This is one of the ISO standard language abbreviations, e.g.
  3483.        "en.uk" for the variation of English spoken in the United
  3484.        Kingdom. It can be used by parsers to select language specific
  3485.        choices for quotation marks, ligatures and hypenation rules etc.
  3486.        The language attribute is composed from the two letter language
  3487.        code from ISO 639, optionally followed by a period and a two
  3488.        letter country code from ISO 3166.
  3489.  
  3490.    CLASS
  3491.        This a space separated list of SGML NAME tokens and is used to
  3492.        subclass tag names. By convention, the class names are
  3493.        interpreted hierarchically, with the most general class on the
  3494.        left and the most specific on the right, where classes are
  3495.        separated by a period. The CLASS attribute is most commonly used
  3496.        to attach a different style to some element, but it is
  3497.        recommended that where practical class names should be picked on
  3498.        the basis of the element's semantics, as this will permit other
  3499.        uses, such as restricting search through documents by matching
  3500.        on element class names. The conventions for choosing class names
  3501.        are outside the scope of this specification.
  3502.  
  3503.    ALIGN
  3504.        Positioning of the caption relative to the table or figure it
  3505.        labels. The permitted values are: TOP, BOTTOM, LEFT or RIGHT.
  3506.  
  3507. Dave Raggett                                                           Page 75
  3508. HTML 3.0                                                       28th March 1995
  3509.  
  3510. Credits
  3511.  
  3512.    Permitted Context: BQ or FIG
  3513.    Content Model: %text
  3514.  
  3515.    The CREDIT element is used to name the source of a block quotation
  3516.    or figure. For example:
  3517.  
  3518.        <CREDIT>The Writer by Richard Wilbur</CREDIT>
  3519.  
  3520. Permitted Attributes for the CREDIT Element
  3521.  
  3522.    ID
  3523.        An SGML identifier used as the target for hypertext links or for
  3524.        naming particular elements in associated style sheets.
  3525.        Identifiers are NAME tokens and must be unique within the scope
  3526.        of the current document.
  3527.  
  3528.    LANG
  3529.        This is one of the ISO standard language abbreviations, e.g.
  3530.        "en.uk" for the variation of English spoken in the United
  3531.        Kingdom. It can be used by parsers to select language specific
  3532.        choices for quotation marks, ligatures and hypenation rules etc.
  3533.        The language attribute is composed from the two letter language
  3534.        code from ISO 639, optionally followed by a period and a two
  3535.        letter country code from ISO 3166.
  3536.  
  3537.    CLASS
  3538.        This a space separated list of SGML NAME tokens and is used to
  3539.        subclass tag names. By convention, the class names are
  3540.        interpreted hierarchically, with the most general class on the
  3541.        left and the most specific on the right, where classes are
  3542.        separated by a period. The CLASS attribute is most commonly used
  3543.        to attach a different style to some element, but it is
  3544.        recommended that where practical class names should be picked on
  3545.        the basis of the element's semantics, as this will permit other
  3546.        uses, such as restricting search through documents by matching
  3547.        on element class names. The conventions for choosing class names
  3548.        are outside the scope of this specification.
  3549.  
  3550. Dave Raggett                                                           Page 76
  3551. HTML 3.0                                                       28th March 1995
  3552.  
  3553. Tables
  3554.  
  3555.    Permitted Context: %body.content, %flow, %block
  3556.    Content Model: Optional CAPTION, then one or more table rows (TR)
  3557.  
  3558.    The HTML table model has been chosen for its simplicity and
  3559.    flexibility. By default the table is automatically sized according
  3560.    to the cell contents and the current window size. The COLSPEC
  3561.    attribute can be used when needed to exert control over column
  3562.    widths, either by setting explicit widths or by specifying relative
  3563.    widths. You can also specify the table width explicitly or as a
  3564.    fraction of the current margins (see WIDTH attribute).
  3565.  
  3566.    Table start with an optional caption followed one or more rows. Each
  3567.    row is formed by one or more cells, which are differentiated into
  3568.    header and data cells. Cells can be merged across rows and columns,
  3569.    and include attributes assisting rendering to speech and braille, or
  3570.    for exporting table data into databases. The model provides little
  3571.    direct support for control over appearence, for example border
  3572.    styles and margins, as these can be handled via subclassing and
  3573.    associated style sheets.
  3574.  
  3575.    Tables can contain a wide range of content, such as headers, lists,
  3576.    paragraphs, forms, figures, preformatted text and even nested
  3577.    tables. When the table is flush left or right, subsequent elements
  3578.    will be flowed around the table if there is sufficient room. This
  3579.    behaviour is disabled when the --noflow-- attribute is given or the
  3580.    table align attribute is --center-- (the default), or --justify--.
  3581.  
  3582. Example
  3583.  
  3584.    <TABLE BORDER>
  3585.      <CAPTION>A test table with merged cells</CAPTION>
  3586.      <TR><TH ROWSPAN=2><TH COLSPAN=2>Average
  3587.          <TH ROWSPAN=2>other<BR>category<TH>Misc
  3588.      <TR><TH>height<TH>weight
  3589.      <TR><TH ALIGN=LEFT>males<TD>1.9<TD>0.003
  3590.      <TR><TH ALIGN=LEFT ROWSPAN=2>females<TD>1.7<TD>0.002
  3591.    </TABLE>
  3592.  
  3593.    This would be rendered something like:
  3594.  
  3595.                  A test table with merged cells
  3596.        /--------------------------------------------------\
  3597.        |          |      Average      |  other   |  Misc  |
  3598.        |          |-------------------| category |--------|
  3599.        |          |  height |  weight |          |        |
  3600.        |-----------------------------------------|--------|
  3601.        | males    |   1.9   |  0.003  |          |        |
  3602.        |-----------------------------------------|--------|
  3603.        | females  |   1.7   |  0.002  |          |        |
  3604.        \--------------------------------------------------/
  3605.  
  3606. Dave Raggett                                                           Page 77
  3607. HTML 3.0                                                       28th March 1995
  3608.  
  3609.    There are several points to note:
  3610.  
  3611.    *   By default, header cells are centered while data cells are flush
  3612.        left. This can be overriden by the ALIGN attribute for the cell;
  3613.        the COLSPEC attribute for the TABLE element; or the ALIGN
  3614.        attribute on the enclosing row's TR element (from the most
  3615.        specific to the least).
  3616.  
  3617.    *   Cells may be empty.
  3618.  
  3619.    *   Cells spanning rows contribute to the column count on each of
  3620.        the spanned rows, but only appear in the markup once (in the
  3621.        first row spanned).
  3622.  
  3623.    *   If the column count for the table is greater than the number of
  3624.        cells for a given row (after including cells for spanned rows),
  3625.        the missing cells are treated as occurring on the right handside
  3626.        of the table, and rendered as empty cells.
  3627.  
  3628.    *   The row count is determined by the TR elements - any rows
  3629.        implied by cells spanning rows beyond this should be ignored.
  3630.  
  3631.    *   The user agent should be able to recover from a missing <TR> tag
  3632.        prior to the first row as the TH and TC elements can only occur
  3633.        within the TR element.
  3634.  
  3635.    *   It is invalid to have cells overlap, see below for an example.
  3636.        In such cases, the rendering is implementation dependent.
  3637.  
  3638.    An example of an invalid table:
  3639.  
  3640.    <table border>
  3641.    <tr><tdrowspan=2>1<td>2<td>3<td>4<td>5
  3642.    <tr><td rowspan=2>6
  3643.    <tr><td colspan=2>7<td>8
  3644.    </table>
  3645.  
  3646.    which looks something like:
  3647.  
  3648.        /-------------------\
  3649.        | 1 | 2 | 3 | 4 | 5 |
  3650.        |   |---------------|
  3651.        |   | 6 |   |   |   |    The cells labelled 6 and 7 overlap!
  3652.        |---|...|-----------|
  3653.        | 7 :   | 8 |   |   |
  3654.        \-------------------/
  3655.  
  3656.    Borderless tables are useful for layout purposes as well as their
  3657.    traditional role for tabular data, for instance with fill-out forms:
  3658.  
  3659.                   name: [John Smith        ]
  3660.            card number: [4619 693523 20851 ]
  3661.  
  3662. Dave Raggett                                                           Page 78
  3663. HTML 3.0                                                       28th March 1995
  3664.  
  3665.                expires: [03] / [97]
  3666.              telephone: [212 873 2739      ]
  3667.  
  3668.    This can be represented as a table with one row and two columns. The
  3669.    first column is right aligned, while the second is left aligned.
  3670.    This example could be marked up as:
  3671.  
  3672.    <table>
  3673.      <tr valign=baseline>
  3674.      <td align=right>
  3675.        name:<br>
  3676.        card number:<br>
  3677.        expires:<br>
  3678.        telephone:
  3679.      <td align=left>
  3680.        <input name="name" size=18><br>
  3681.        <input name="cardnum" size=18><br>
  3682.        <input name="expires-month" size=2> /
  3683.        <input name="expires-year" size=2><br>
  3684.        <input name="phone" size=18><br>
  3685.    </table>
  3686.  
  3687.    The use of such techniques is one of the motivations for using
  3688.    nested tables, where borderless tables are used to layout cell
  3689.    contents for an enclosing table
  3690.  
  3691.    Hint: You can achieve a similar effect to the above by using decimal
  3692.    alignment and using the DP attribute to set the alignment character
  3693.    to a convenient character, for example:
  3694.  
  3695.    <table>
  3696.      <tr align=decimal dp=":">
  3697.      <td>
  3698.        name: <input name="name" size=18><br>
  3699.        card number: <input name="cardnum" size=18><br>
  3700.        expires: <input name="expires-month" size=2> /
  3701.        <input name="expires-year" size=2><br>
  3702.        telephone:<input name="phone" size=18><br>
  3703.    </table>
  3704.  
  3705.    Each line in the table is then indented so that all the colons are
  3706.    positioned under one another.
  3707.  
  3708. Table Sizing Algorithm
  3709.  
  3710.    The default sizing algorithm requires two passes through the table
  3711.    data. In the first pass, word wrapping is disabled, and the user
  3712.    agent keeps track of the minimum and maximum width of each cell. The
  3713.    maximum width is given by the widest line. As word wrap has been
  3714.    disabled, paragraphs are treated as long lines unless broken by <BR>
  3715.    elements. The minimum width is given by the widest word or image
  3716.  
  3717. Dave Raggett                                                           Page 79
  3718. HTML 3.0                                                       28th March 1995
  3719.  
  3720.    etc. taking into account leading indents and list bullets etc. In
  3721.    other words, if you were to format the cell's content in a window of
  3722.    its own, determine the minimum width you could make the window
  3723.    before things begin to be clipped.
  3724.  
  3725.    The minimum and maximum cell widths are then used to determine the
  3726.    corresponding minimum and maximum widths for the columns. These in
  3727.    turn, are used to find the minimum and maximum width for the table.
  3728.    Note that cells can contain nested tables, but this doesn't
  3729.    complicate the code significantly. The next step is to assign column
  3730.    widths according to the current window size (more accurately - the
  3731.    width between the left and right margins).
  3732.  
  3733.    The table borders and intercell margins need to be included in the
  3734.    assignment step. There are three cases:
  3735.  
  3736.    1.  The minimum table width is equal to or wider than the available
  3737.        space. In this case, assign the minimum widths and allow the
  3738.        user to scroll horizontally. For conversion to braille, it will
  3739.        be necessary to replace the cells by references to notes
  3740.        containing their full content. By convention these appear before
  3741.        the table.
  3742.  
  3743.    2.  The maximum table width fits within the available space. In this
  3744.        case, set the columns to their maximum widths.
  3745.  
  3746.    3.  The maximum width of the table is greater than the available
  3747.        space, but the minimum table width is smaller. In this case,
  3748.        find the difference between the available space and the minimum
  3749.        table width, lets call it --W--. Lets also call --D-- the
  3750.        difference between maximum and minimum width of the table.
  3751.  
  3752.        For each column, let --d-- be the the difference between maximum
  3753.        and minimum width of that column. Now set the column's width to
  3754.        the minimum width plus --d-- times --W-- over --D--. This makes
  3755.        columns with lots of text wider than columns with smaller
  3756.        amounts.
  3757.  
  3758.    This assignment step is then repeated for nested tables. In this
  3759.    case, the width of the enclosing table's cell plays the role of the
  3760.    current window size in the above description. This process is
  3761.    repeated recursively for all nested tables.
  3762.  
  3763.    If the COLSPEC attribute specifies the column widths explicitly, the
  3764.    user agent can attempt to use these values. If subsequently, one of
  3765.    the cells overflows its column width, the two pass mechanism may be
  3766.    invoked to redraw the table with more appropriate widths. If the
  3767.    attribute specifies relative widths, then the two pass model is
  3768.    always needed.
  3769.  
  3770.    The column width assignment algorithm is then modified:
  3771.  
  3772.    *   Explicit widths from the COLSPEC attribute should be used when
  3773.  
  3774. Dave Raggett                                                           Page 80
  3775. HTML 3.0                                                       28th March 1995
  3776.  
  3777.        given, provided they are greater than the minimum column width,
  3778.        otherwise the latter should be used.
  3779.  
  3780.    *   For relative widths, the surplus space --W--, as defined above,
  3781.        is divided up between the columns appropriately, ensuring that
  3782.        each column is given at least its minimum width. If --W-- is
  3783.        zero or negative, column widths should be increased over the
  3784.        minimum width to meet the relative width requirements.
  3785.  
  3786.    If the table width is specified with the WIDTH attribute, the user
  3787.    agent attempts to set column widths to match. The WIDTH attribute
  3788.    should be disregarded if this results in columns having less than
  3789.    their minimum widths.
  3790.  
  3791. Permitted Attributes
  3792.  
  3793.    ID
  3794.        An SGML identifier used as the target for hypertext links or for
  3795.        naming particular elements in associated style sheets.
  3796.        Identifiers are NAME tokens and must be unique within the scope
  3797.        of the current document.
  3798.  
  3799.    LANG
  3800.        This is one of the ISO standard language abbreviations, e.g.
  3801.        "en.uk" for the variation of English spoken in the United
  3802.        Kingdom. It can be used by parsers to select language specific
  3803.        choices for quotation marks, ligatures and hypenation rules etc.
  3804.        The language attribute is composed from the two letter language
  3805.        code from ISO 639, optionally followed by a period and a two
  3806.        letter country code from ISO 3166.
  3807.  
  3808.    CLASS
  3809.        This a space separated list of SGML NAME tokens and is used to
  3810.        subclass tag names. By convention, the class names are
  3811.        interpreted hierarchically, with the most general class on the
  3812.        left and the most specific on the right, where classes are
  3813.        separated by a period. The CLASS attribute is most commonly used
  3814.        to attach a different style to some element, but it is
  3815.        recommended that where practical class names should be picked on
  3816.        the basis of the element's semantics, as this will permit other
  3817.        uses, such as restricting search through documents by matching
  3818.        on element class names. The conventions for choosing class names
  3819.        are outside the scope of this specification.
  3820.  
  3821.    CLEAR
  3822.        When there is a figure or another table in the margin, you
  3823.        sometimes want to start another table below the figure rather
  3824.        than alongside it. The CLEAR attribute allows you to move down unconditionally:
  3825.  
  3826.        clear=left
  3827.            move down until left margin is clear
  3828.  
  3829. Dave Raggett                                                           Page 81
  3830. HTML 3.0                                                       28th March 1995
  3831.  
  3832.        clear=right
  3833.            move down until right margin is clear
  3834.  
  3835.        clear=all
  3836.            move down until both margins are clear
  3837.  
  3838.        Alternatively, you can decide to place the table alongside the
  3839.        figure just so long as there is enough room. The minimum width
  3840.        needed is specified as:
  3841.  
  3842.        clear="40 en"
  3843.            move down until there is at least 40 en units free
  3844.  
  3845.        clear="100 pixels"
  3846.            move down until there is at least 100 pixels free
  3847.  
  3848.        The style sheet (or browser defaults) may provide default
  3849.        minimum widths for each class of block-like elements.
  3850.  
  3851.    NOFLOW
  3852.        The presence of this attribute disables text flow around the
  3853.        table. It avoids the need to use the CLEAR or NEEDS attributes
  3854.        on the following element.
  3855.  
  3856.    ALIGN
  3857.        Specifies horizontal alignment of the table (--not-- its contents):
  3858.  
  3859.        BLEEDLEFT
  3860.            Flush left with the left (window) border.
  3861.  
  3862.        LEFT
  3863.            Flush left with the left text margin.
  3864.  
  3865.        CENTER
  3866.            The table is centered between the text margins and text flow
  3867.            around the table is disabled. This is the default setting
  3868.            for ALIGN.
  3869.  
  3870.        RIGHT
  3871.            Flush right with the right text margin.
  3872.  
  3873.        BLEEDRIGHT
  3874.            Flush right with the right (window) border
  3875.  
  3876.        JUSTIFY
  3877.            When applicable the table should be sized to fill the space
  3878.            between the left and right text margins. Text flow around
  3879.            the table is disabled for align=justify.
  3880.  
  3881. Dave Raggett                                                           Page 82
  3882. HTML 3.0                                                       28th March 1995
  3883.  
  3884.    UNITS
  3885.        Specifies the choice of units for the COLSPEC attribute:
  3886.  
  3887.        units=en
  3888.            Specifies en units (a typographical unit equalt to half the
  3889.            point size). This is the default setting and allows user
  3890.            agents to render the table a row at a time without waiting
  3891.            until all of the table's data has been received.
  3892.  
  3893.        units=relative
  3894.            Used to set the relative width of columns. The user agent
  3895.            sums the values to determine the proportional width of each
  3896.            column.
  3897.  
  3898.        units=pixels
  3899.            The least useful!
  3900.  
  3901.        A design issue for user agents is how to handle cases where cell
  3902.        contents won't fit into the specified column widths. One
  3903.        approach is to clip the contents to the given column width,
  3904.        another is to resize the columns to fit the contents regardless
  3905.        of the COLSPEC attribute (its best to wait until all of the
  3906.        table's data has been processed before resizing).
  3907.  
  3908.    COLSPEC
  3909.        The colspec attribute is a list of column widths and alignment
  3910.        specifications. The columns are listed from left to right with a
  3911.        capital letter followed by a number, e.g. COLSPEC="L20 C8 L40".
  3912.        The letter is L for left, C for center, R for right alignment of
  3913.        cell contents. J is for justification, when feasible, otherwise
  3914.        this is treated in the same way as L for left alignment. D is
  3915.        for decimal alignment, see DP attribute.
  3916.  
  3917.        Capital letters are required to avoid a particularly common
  3918.        error when a lower case L is confused with a one. Column entries
  3919.        are delimited by one or more space characters.
  3920.  
  3921.        The number specifies the width in en's, pixels or as a
  3922.        fractional value of the table width, as according to the
  3923.        associated units attribute. This approach is more compact than
  3924.        used with most SGML table models and chosen to simplify hand
  3925.        entry. The width attribute allows you to specify the width of
  3926.        the table in pixels, em units or as a percentage of the space
  3927.        between the current left and right margins.
  3928.  
  3929.    DP
  3930.        This specifies the character to be used for the decimal point
  3931.        with the COLSPEC attribute, e.g. dp="." (the default) or dp=",".
  3932.        The default may be altered by the language context, as set by
  3933.        the LANG attribute on enclosing elements.
  3934.  
  3935. Dave Raggett                                                           Page 83
  3936. HTML 3.0                                                       28th March 1995
  3937.  
  3938.    WIDTH
  3939.        This specifies the width of the table according to the UNITS
  3940.        attribute. If units=relative, the width is taken as a percentage
  3941.        of the width between the current left and right margins. The
  3942.        user agent should disregard this attribute if it would result in
  3943.        columns having less than their minimum widths.
  3944.  
  3945.    BORDER
  3946.        This presence of this attribute instructs the user agent to
  3947.        render borders around tables. For instance: <TABLE BORDER>. The
  3948.        precise appearence, along with the size of margins around cells,
  3949.        can be controlled by associated style sheets, or via information
  3950.        in the STYLE element in the document head. Subclassing tables,
  3951.        rows and cells is particularly useful in this regard.
  3952.  
  3953.    NOWRAP
  3954.        The NOWRAP attribute is used when you don't want the browser to
  3955.        automatically wrap lines. You can then explicitly specify line
  3956.        breaks in paragrphs using the BR element.
  3957.  
  3958. Dave Raggett                                                           Page 84
  3959. HTML 3.0                                                       28th March 1995
  3960.  
  3961. Table Rows
  3962.  
  3963.    Permitted Context: TABLE
  3964.    Content Model: Table Cells (TH or TD)
  3965.  
  3966.    The TR element acts as a container for a row of table cells defined
  3967.    with the TH or TD elements. You can set default horizontal and
  3968.    vertical alignment of cell contents for the row. You also have the
  3969.    ability to disable word wrap for the row, and thereafter use the
  3970.    <BR> element to determine line breaks and hence cell widths.
  3971.  
  3972.    To assist with formatting tables to paged media, authors can
  3973.    differentiate leading and trailing rows that are to be duplicated
  3974.    when splitting tables across page boundaries. The recommended
  3975.    approach is to subclass rows using the CLASS attribute For example:
  3976.  
  3977.        <TABLE BORDER COLSPEC= --...-->
  3978.          <TR CLASS=Header> --header cells ...--
  3979.          <TR CLASS=Body>   --body cells ...--
  3980.          <TR CLASS=Footer> --footer cells ...--
  3981.        </TABLE>
  3982.  
  3983.    Paged browsers when splitting a table across a page boundary, can
  3984.    then insert footer rows at the bottom of the current page and header
  3985.    rows at the top of the next page, followed by the remaining body
  3986.    rows, and the footer rows. This is repeated as necessary until all
  3987.    of the body rows have been rendered. Refinements of this scheme can
  3988.    be devised by further subclassing the rows together with an
  3989.    appropriate style sheet.
  3990.  
  3991. Permitted Attributes for the TR Element
  3992.  
  3993.    ID
  3994.        An SGML identifier used as the target for hypertext links or for
  3995.        naming particular elements in associated style sheets.
  3996.        Identifiers are NAME tokens and must be unique within the scope
  3997.        of the current document.
  3998.  
  3999.    LANG
  4000.        This is one of the ISO standard language abbreviations, e.g.
  4001.        "en.uk" for the variation of English spoken in the United
  4002.        Kingdom. It can be used by parsers to select language specific
  4003.        choices for quotation marks, ligatures and hypenation rules etc.
  4004.        The language attribute is composed from the two letter language
  4005.        code from ISO 639, optionally followed by a period and a two
  4006.        letter country code from ISO 3166.
  4007.  
  4008.    CLASS
  4009.        This a space separated list of SGML NAME tokens and is used to
  4010.        subclass tag names. By convention, the class names are
  4011.        interpreted hierarchically, with the most general class on the
  4012.        left and the most specific on the right, where classes are
  4013.  
  4014. Dave Raggett                                                           Page 85
  4015. HTML 3.0                                                       28th March 1995
  4016.  
  4017.        separated by a period. The CLASS attribute is most commonly used
  4018.        to attach a different style to some element, but it is
  4019.        recommended that where practical class names should be picked on
  4020.        the basis of the element's semantics, as this will permit other
  4021.        uses, such as restricting search through documents by matching
  4022.        on element class names. The conventions for choosing class names
  4023.        are outside the scope of this specification.
  4024.  
  4025.    ALIGN
  4026.        The ALIGN attribute can be used to explicitly specify the
  4027.        horizontal alignment of paragraphs within a table row:
  4028.  
  4029.        align=left
  4030.            Paragraphs are rendered flush left.
  4031.  
  4032.        align=center
  4033.            Paragraphs are centered.
  4034.  
  4035.        align=right
  4036.            Paragraphs are rendered flush right.
  4037.  
  4038.        align=justify
  4039.            Text lines are justified where practical, otherwise this
  4040.            gives the same effect as the align=left setting.
  4041.  
  4042.        align=decimal
  4043.            Text lines are indented such that the first occurrence of a
  4044.            decimal point on each line are aligned vertically. If a line
  4045.            doesn't contain a decimal point, the line is rendered flush
  4046.            left for data cells and centered for header cells.
  4047.  
  4048.        Note: By default, header cells are centered while data cells are
  4049.        flush left. This attribute can be used to alter these defaults
  4050.        on a row by row basis. If you are specifying column alignments
  4051.        with the TABLE's COLSPEC attribute, there is no point in also
  4052.        including an ALIGN attribute with the TR element, as the latter
  4053.        will be ignored.
  4054.  
  4055.    DP
  4056.        This specifies the character to be used for the decimal point
  4057.        with the ALIGN attribute, e.g. dp="." (the default) or dp=",".
  4058.        The default may be altered by the language context, as set by
  4059.        the LANG attribute on enclosing elements.
  4060.  
  4061.    VALIGN
  4062.        The VALIGN attribute can be used to explicitly specify the
  4063.        vertical alignment of material within a table row. It is
  4064.        overridden by the VALIGN attribute on individual cells:
  4065.  
  4066. Dave Raggett                                                           Page 86
  4067. HTML 3.0                                                       28th March 1995
  4068.  
  4069.        valign=top
  4070.            The cell contents appear at the top of each cell (the
  4071.            default).
  4072.  
  4073.        valign=middle
  4074.            Cell contents are centered vertically in each cell.
  4075.  
  4076.        valign=bottom
  4077.            The cell contents appear at the bottom of each cell.
  4078.  
  4079.        valign=baseline
  4080.            This is used when you want to ensure that all cells in the
  4081.            row share the same baseline. This constraint only applies to
  4082.            the first text line for each cell.
  4083.  
  4084.    NOWRAP
  4085.        The NOWRAP attribute is used when you don't want the browser to
  4086.        automatically wrap lines. You can then explicitly specify line
  4087.        breaks in paragrphs using the BR element.
  4088.  
  4089. Dave Raggett                                                           Page 87
  4090. HTML 3.0                                                       28th March 1995
  4091.  
  4092. Table Cells (TH and TD)
  4093.  
  4094.    Permitted Context: TR
  4095.    Content Model: %body.content
  4096.  
  4097.    The TH and TD elements are used for table cells. TH is used for
  4098.    table header cells while TD is used for table data cells. This
  4099.    distinction gives user agents a means to render such cells
  4100.    distinctly, for instance by using a larger or heavier font for
  4101.    header cells. It is also needed when rendering to speech. The CLASS
  4102.    attribute can be used to further differentiate cells, for instance
  4103.    into heads and subheads. This can be used together with style sheets
  4104.    to control the cell border style, and fill color etc.
  4105.  
  4106.    The horizontal and vertical alignment of cell contents are
  4107.    determined by the ALIGN and VALIGN attributes respectively. In their
  4108.    absence, the alignment will be inherited from the TR element for the
  4109.    row. The COLSPEC attribute of the enclosing TABLE element provides a
  4110.    convenient way of specifying the default horizontal alignment for
  4111.    columns.
  4112.  
  4113.    The AXIS and AXES attributes can be used when rendering to speech to
  4114.    provide abbreviated names for each cell's headers. Another
  4115.    application is when you want to be able to later process table
  4116.    contents to enter them into a database. Theses attributes are then
  4117.    used to give database field names. The table's class attribute
  4118.    should be used to let the software recognise which tables can be
  4119.    treated in this way.
  4120.  
  4121.    Note: Disabling word wrap and using the <BR> element in order to
  4122.    control cell widths is discouraged in favor of using the table
  4123.    COLSPEC and WIDTH attributes.
  4124.  
  4125. Permitted Attributes for the TH/TD Element
  4126.  
  4127.    ID
  4128.        An SGML identifier used as the target for hypertext links or for
  4129.        naming particular elements in associated style sheets.
  4130.        Identifiers are NAME tokens and must be unique within the scope
  4131.        of the current document.
  4132.  
  4133.    LANG
  4134.        This is one of the ISO standard language abbreviations, e.g.
  4135.        "en.uk" for the variation of English spoken in the United
  4136.        Kingdom. It can be used by parsers to select language specific
  4137.        choices for quotation marks, ligatures and hypenation rules etc.
  4138.        The language attribute is composed from the two letter language
  4139.        code from ISO 639, optionally followed by a period and a two
  4140.        letter country code from ISO 3166.
  4141.  
  4142.    CLASS
  4143.        This a space separated list of SGML NAME tokens and is used to
  4144.        subclass tag names. By convention, the class names are
  4145.  
  4146. Dave Raggett                                                           Page 88
  4147. HTML 3.0                                                       28th March 1995
  4148.  
  4149.        interpreted hierarchically, with the most general class on the
  4150.        left and the most specific on the right, where classes are
  4151.        separated by a period. The CLASS attribute is most commonly used
  4152.        to attach a different style to some element, but it is
  4153.        recommended that where practical class names should be picked on
  4154.        the basis of the element's semantics, as this will permit other
  4155.        uses, such as restricting search through documents by matching
  4156.        on element class names. The conventions for choosing class names
  4157.        are outside the scope of this specification.
  4158.  
  4159.    COLSPAN
  4160.        The number of columns spanned by this cell. This allows you to
  4161.        merge cells across columns. It defaults to 1 (one).
  4162.  
  4163.    ROWSPAN
  4164.        The number of rows spanned by this cell. This allows you to
  4165.        merge cells across rows. It defaults to 1 (one).
  4166.  
  4167.    ALIGN
  4168.        The ALIGN attribute can be used to explicitly specify the
  4169.        horizontal alignment of paragraphs within a table row:
  4170.  
  4171.        align=left
  4172.            Paragraphs are rendered flush left. This is the default for
  4173.            data cells (TD).
  4174.  
  4175.        align=center
  4176.            Paragraphs are centered. This is the default for header
  4177.            cells (TH).
  4178.  
  4179.        align=right
  4180.            Paragraphs are rendered flush right.
  4181.  
  4182.        align=justify
  4183.            Text lines are justified where practical, otherwise this
  4184.            gives the same effect as the align=left setting.
  4185.  
  4186.        align=decimal
  4187.            Text lines are indented such that the first occurrence of a
  4188.            decimal point on each line are aligned vertically. If a line
  4189.            doesn't contain a decimal point, the line is rendered flush
  4190.            left for data cells and centered for header cells.
  4191.  
  4192.        Note: In the absence of the ALIGN attribute, the default is
  4193.        overridden by the presence of an ALIGN attribute on the parent
  4194.        TR element, or by the COLSPEC attribute on the TABLE element.
  4195.        The COLSPEC attribute takes precedence over the TR element
  4196.        though!
  4197.  
  4198.    DP
  4199.        This specifies the character to be used for the decimal point
  4200.  
  4201. Dave Raggett                                                           Page 89
  4202. HTML 3.0                                                       28th March 1995
  4203.  
  4204.        with the ALIGN attribute, e.g. dp="." (the default) or dp=",".
  4205.        The default may be altered by the language context, as set by
  4206.        the LANG attribute on enclosing elements.
  4207.  
  4208.    VALIGN
  4209.        The VALIGN attribute can be used to explicitly specify the
  4210.        vertical alignment of material within a table cell:
  4211.  
  4212.        valign=top
  4213.            The cell contents appear at the top of each cell (the
  4214.            default).
  4215.  
  4216.        valign=middle
  4217.            Cell contents are centered vertically in each cell.
  4218.  
  4219.        valign=bottom
  4220.            The cell contents appear at the bottom of each cell.
  4221.  
  4222.        valign=baseline
  4223.            This is used when you want to ensure that all cells in the
  4224.            row with valign=baseline share the same baseline. This
  4225.            constraint only applies to the first text line for each
  4226.            cell.
  4227.  
  4228.        Note: In the absence of the VALIGN attribute, the default can be
  4229.        overridden by the presence of a VALIGN attribute on the parent
  4230.        TR element.
  4231.  
  4232.    NOWRAP
  4233.        The NOWRAP attribute is used when you don't want the browser to
  4234.        automatically wrap lines. You can then explicitly specify line
  4235.        breaks in paragraphs using the BR element.
  4236.  
  4237.    AXIS
  4238.        This defines an abbreviated name for a header cell, which can be
  4239.        used when rendering to speech. It defaults to the cell's
  4240.        content.
  4241.  
  4242.    AXES
  4243.        This is a comma separated list of axis names which together
  4244.        identify the row and column headers that pertain to this cell.
  4245.        It is used when rendering to speech to identify the cell's
  4246.        position in the table. If missing the user agent can try to
  4247.        follow up columns and left along rows (right for some languages)
  4248.        to find the corresponding header cells.
  4249.  
  4250.        Note: a subheader cell may include both attributes - using AXIS
  4251.        to name itself and AXES to name the parent header cell. When
  4252.        data cells refer to header cells with both attributes, the
  4253.        parent header cells are found by following back the head-subhead
  4254.        relationships.
  4255.  
  4256. Dave Raggett                                                           Page 90
  4257. HTML 3.0                                                       28th March 1995
  4258.  
  4259. Dave Raggett                                                           Page 91
  4260. HTML 3.0                                                       28th March 1995
  4261.  
  4262. HTML Math
  4263.  
  4264.    Permitted Context: %text
  4265.    Content Model: %math
  4266.  
  4267.    The <MATH> element is used to include math expressions in the
  4268.    current line. HTML math is powerful enough to describe the range of
  4269.    math expressions you can create in common word processing packages,
  4270.    as well as being suitable for rendering to speech. When rendering to
  4271.    fixed pitch text-only media, simple text graphics can be used for
  4272.    math symbols such as the integration sign, while other symbols can
  4273.    be rendered using their entity names. The SGML SHORTREF capability
  4274.    is used to provide abbreviations for hidden brackets, subscripts and
  4275.    superscripts.
  4276.  
  4277.    The design of HTML math owes a lot to LaTeX's math mode, which has
  4278.    been found to be effective for a wide variety of mathematical
  4279.    typesetting. Where practical, HTML math uses tag names matching
  4280.    LaTeX commands, e.g. ATOP, CHOOSE and SQRT act in the same way as
  4281.    their LaTeX namesakes. Of course, SGML and LaTeX have quite
  4282.    different syntactical conventions. As a result, HTML math uses the
  4283.    ISO entity names for symbols rather than the TeX names. In LaTeX,
  4284.    the character command ^ sets the next character as an exponent,
  4285.    while the character command _ sets it as an index. If the exponent
  4286.    or index contains more than one character then the group of
  4287.    characters must be enclosed in curly brackets { }. This syntax is
  4288.    inappropriate for SGML, so HTML math instead treats _ and ^ as
  4289.    shortref characters for the SUB and SUP elements which are used for
  4290.    indices and exponents, respectively.
  4291.  
  4292.    --I can't find the ISO entity names for the _ and ^ chararacters!--
  4293.  
  4294.    HTML math has been designed to be both concise and comparatively
  4295.    easy to read. In practice, formulae will be a little longer than in
  4296.    LaTeX, but much shorter than with other math proposals for SGML, for
  4297.    instance EuroMath or ISO 12083. This simplification has been
  4298.    achieved through the power of the BOX element, which replaces many
  4299.    elements in other proposals, as well as the simple conventions for
  4300.    binding the SUB and SUP elements and their use as generic raising
  4301.    and lowering operators. HTML math differentiates terms e.g. binary
  4302.    operators, variables, constants, integral signs, delimiters and so
  4303.    on. This simplifies rendering and reflects the assumptions adopted
  4304.    by LaTeX. It further allows the same raising and lowering operators
  4305.    to be used for many different roles according to the term they apply
  4306.    to. HTML math doesn't provide direct support for multi-line
  4307.    equations, as this can be effectively handled by combining math with
  4308.    the TABLE element.
  4309.  
  4310.    Example - the integral from a to b of f(x) over 1+x
  4311.  
  4312.        <MATH>∫_a_^b^{f(x)<over>1+x} dx</MATH>
  4313.  
  4314.    which can be rendered on a fixed pitch text-only medium as:
  4315.  
  4316. Dave Raggett                                                           Page 92
  4317. HTML 3.0                                                       28th March 1995
  4318.  
  4319.             b
  4320.             /   f(x)
  4321.             | ------- dx
  4322.             /  1 + x
  4323.             a
  4324.  
  4325.    The example uses { and } as shortrefs for <BOX> and </BOX>
  4326.    respectively. This is used for invisible brackets, stretchy
  4327.    delimiters and integral signs, and placing one thing over another.
  4328.    The shortref characters "_" and "^" are used for subscripts and
  4329.    superscripts respectively.
  4330.  
  4331.    HTML math follows general practice in mathematical typesetting by
  4332.    rendering functions, numbers and other constants in an upright font,
  4333.    while variables are rendered in an italic font. You can set
  4334.    particular terms in a bold face, and for chemical formulae, you can
  4335.    force the use of an upright font. Limits for symbols like the
  4336.    integral and summation signs are placed directly above (below) the
  4337.    symbol or to the immediate right depending on the symbol.
  4338.  
  4339.    Spacing between constants, variables and operators is determined
  4340.    automatically. Additional spacing can be inserted with entities such
  4341.    as   &sp; and &quadsp;. White space in the markup is used
  4342.    only to delimit adjacent variables or constants. You don't need
  4343.    spaces before or after binary operators or other special symbols, as
  4344.    these are recognised by the HTML math tokeniser. White space can be
  4345.    useful, though, for increased legibility while authoring.
  4346.    --I need to check on the ISO entity names for spacing!--
  4347.  
  4348. Math Markup
  4349.  
  4350.    The following elements are permitted within MATH elements:
  4351.  
  4352.    BOX
  4353.        Used for hidden brackets, stretchy delimiters, and placing one
  4354.        expression over another (e.g. numerators and denominators).
  4355.  
  4356.    SUB, SUP
  4357.        Subscripts and superscripts. Also used for limits.
  4358.  
  4359.    ABOVE
  4360.        Used to draw an arrow, line or symbol above an expression.
  4361.  
  4362.    BELOW
  4363.        Used to draw an arrow, line or symbol below an expression.
  4364.  
  4365.    VEC, BAR, DOT, DDOT, HAT, TILDE
  4366.        These are convenience tags for common accents as an alternative
  4367.        to using ABOVE.
  4368.  
  4369.    SQRT, ROOT
  4370.        For square roots and other roots of an expression.
  4371.  
  4372. Dave Raggett                                                           Page 93
  4373. HTML 3.0                                                       28th March 1995
  4374.  
  4375.    ARRAY
  4376.        For matrices and other kinds of arrays.
  4377.  
  4378.    TEXT
  4379.        Used to include a short piece of text within a math element, and
  4380.        often combined with SUB or SUP elements.
  4381.  
  4382.    B, T, BT
  4383.        These elements are used override the default rendering. B
  4384.        renders the enclosed expression in an bold face. T designates a
  4385.        term to be rendered in an upright font, while BT designates a
  4386.        term to be rendered in a bold upright font. The class attribute
  4387.        can be used to describe the kind of term, e.g. vector, tensor,
  4388.        or matrix.
  4389.  
  4390. HTML Math Entities
  4391.  
  4392.    *   Functions
  4393.  
  4394.    *   Operators
  4395.  
  4396.    *   Continuation dots
  4397.  
  4398.    *   Greek letters
  4399.  
  4400.    *   Relations
  4401.  
  4402.    *   Accents, arrows and pointers
  4403.  
  4404.    *   Delimiters
  4405.  
  4406.    *   Other symbols.
  4407.  
  4408.    *   Spacing entities.
  4409.  
  4410. Rendering HTML Math
  4411.  
  4412.    The expression is rendered in three steps:
  4413.  
  4414.    1.  The first step recursively parses expressions building up a
  4415.        matching hierarchy of data structures (with bounding boxes)
  4416.        corresponding to sequences of nested expressions. The math
  4417.        tokeniser needs to be able to distinguish constants, variables,
  4418.        functions, operators, delimiters, and special symbols such as
  4419.        integrals, which can take limits and may be stretchy.
  4420.  
  4421.    2.  The next step sets the size of the innermost expressions based
  4422.        on the size of available fonts. If possible subscript and
  4423.        superscript expressions should be set in a smaller font. The
  4424.        size and relative positioning of neighboring and enclosing
  4425.        expressions is then propagated up the hierarchy from the
  4426.        innermost outwards, as the procedure stack formed in step (1)
  4427.  
  4428. Dave Raggett                                                           Page 94
  4429. HTML 3.0                                                       28th March 1995
  4430.  
  4431.        unwinds.
  4432.  
  4433.    3.  The final step is to render the hierarchy of expressions to the
  4434.        output medium. This is now straight forward as all the
  4435.        positioning and sizes of special symbols and text strings are
  4436.        now fixed.
  4437.  
  4438.    Note: In practice, only a limited range of font sizes are suitable,
  4439.    as a result, deeply nested expressions like continued fractions
  4440.    can't use ever smaller fonts. This is simply handled by a parameter
  4441.    to the --ParseExpression-- routine that sets the font size to be
  4442.    used for that expression. ParseExpression is called recursively for
  4443.    nested expressions and uses the next smaller font until it bottoms
  4444.    out with the smallest font available. The size parameter corresponds
  4445.    to an enumeration of the available font sizes.
  4446.  
  4447. Permitted Attributes
  4448.  
  4449.    ID
  4450.        An SGML identifier used as the target for hypertext links or for
  4451.        naming particular elements in associated style sheets.
  4452.        Identifiers are NAME tokens and must be unique within the scope
  4453.        of the current document.
  4454.  
  4455.    CLASS
  4456.        This a space separated list of SGML NAME tokens and is used to
  4457.        subclass tag names. By convention, the class names are
  4458.        interpreted hierarchically, with the most general class on the
  4459.        left and the most specific on the right, where classes are
  4460.        separated by a period.
  4461.  
  4462.        For the MATH element, CLASS can be used to describe the kind of
  4463.        math expression involved. This can be used to alter the way
  4464.        formulae are rendered, and to support exporting the expression
  4465.        to symbolic math software. The class "chem" is useful for
  4466.        chemical formulae which use an upright font for variables rather
  4467.        than the default italic font. For example:
  4468.  
  4469.            <math class=chem> Fe_2_^2+^Cr_2_O_4_</math>
  4470.  
  4471.                                2+
  4472.        which is rendered as  Fe  Cr  O
  4473.                                2   2  4
  4474.  
  4475.        Otherwise, the conventions for choosing class names are outside
  4476.        the scope of this specification.
  4477.  
  4478.    BOX
  4479.        The presence of this attribute causes the user agent to draw a
  4480.        rectangular box around the formulae.
  4481.  
  4482. Dave Raggett                                                           Page 95
  4483. HTML 3.0                                                       28th March 1995
  4484.  
  4485. The BOX element
  4486.  
  4487.    Permitted Context: %math
  4488.    Content Model: %math?, LEFT?, expression, RIGHT?, %math?
  4489.    where expression is %math or %math --tag-- %math, see below.
  4490.  
  4491.    The BOX element is used for a variety of purposes:
  4492.  
  4493.    *   As invisible brackets for disambiguating expressions.
  4494.  
  4495.    *   For placing numerators over denominators, with or without
  4496.        dividing lines, corresponding to LaTeX's --frac, atop-- and
  4497.        --choose-- commands.
  4498.  
  4499.    *   For placing delimiters before, and/or after an expression, which
  4500.        grow to match the height of the expression. This corresponds to
  4501.        LaTeX's --left-- and --right-- commands.
  4502.  
  4503.    *   For stretchy integral and related signs that grow to match the
  4504.        height of the integrand. This goes beyond LaTeX and avoids the
  4505.        need for different symbols for different sizes of integral signs
  4506.        etc.
  4507.  
  4508.    The SHORTREF characters { and } are used as abbreviations for the
  4509.    start and end tags for BOX elements. Use the SGML entities {
  4510.    and } respectively when you need to use these characters
  4511.    literally.
  4512.  
  4513.    Short fractions, are best represented using the slash character / as
  4514.    in <math>(n + m)/2</math> for (n + m)/2. For more complicated
  4515.    fractions you can use the BOX element with the OVER tag, as in:
  4516.  
  4517.             1
  4518.           -----          {1<over>x + y}
  4519.           x + y
  4520.  
  4521.           x - y
  4522.         ---------        {x - y<over>1 + {a - b<over>a + b}}
  4523.             a - b
  4524.         1 + -----
  4525.             a + b
  4526.  
  4527.    Use the ATOP tag when you want to place one thing above another, but
  4528.    without the dividing line. With the CHOOSE tag, the expressions are
  4529.    also enclosed within round brackets, for instance:
  4530.  
  4531.           a - b
  4532.                                      {a - b<atop>a + b}
  4533.           a + b
  4534.  
  4535.      (n + 1)   ( n )   (  n  )       {n+1<choose>k}
  4536.  
  4537. Dave Raggett                                                           Page 96
  4538. HTML 3.0                                                       28th March 1995
  4539.  
  4540.      (     ) = (   ) + (     )          = {n<choose>k}
  4541.      (  k  )   ( k )   (k - 1)             + {n<choose>k-1}
  4542.  
  4543.    The BOX element can be used with the LEFT and RIGHT tags for
  4544.    delimiters that stretch to match the size of the enclosed
  4545.    expression. You are free to give only one or both of the delimiters,
  4546.    and you can use different symbols for the left and right. Left
  4547.    delimiters should be given before the LEFT tag, while right
  4548.    delimiters should be given following the RIGHT tag, for instance:
  4549.  
  4550.                  ( 1 + x )       f(x) = {(<left>
  4551.           f(x) = ( ----- )                 1+x<over> sin x
  4552.                  ( sin x )                  <right>)}
  4553.  
  4554.    For curly brackets you will need to use the { and }
  4555.    entities for { and } respectively. The SIZE attribute can be used to
  4556.    get oversized delimiters, for instance:
  4557.  
  4558.             2 |          |
  4559.        omega  |          |        {ω^2^<over>c^2^}
  4560.        -----  |<j| mu |i>|         <box size=huge> | <left>
  4561.           2   |      z   |              <j | μ_z_ | i>
  4562.          c    |          |           <right> | </box>
  4563.  
  4564.    The full tag name for the BOX element is needed above in order to
  4565.    specify a value for the SIZE attribute. The BOX element is also
  4566.    useful for stretching integral signs to match the height of the
  4567.    integrand. The integral and its limits appear in the position of the
  4568.    left delimiter for the BOX element. You can also include multiple
  4569.    integrals, for instance:
  4570.  
  4571.       inf inf
  4572.        /   /  f(x, y)           {∫_0_^&inf;^ ∫_0_^&inf;^<left>
  4573.        |   | --------- dx dy        f(x,y)<over>x^2^ + y^2^} dx dy
  4574.        |   |   2     2
  4575.        /   /  x  +  y
  4576.        0   0
  4577.  
  4578. Permitted Attributes for the BOX element
  4579.  
  4580.    SIZE
  4581.        This used to obtain oversized delimiters. The permitted values
  4582.        are --normal-- (the default), --medium--, --large-- and
  4583.        --huge--.
  4584.  
  4585.    Note: there are no attributes for the LEFT, RIGHT, OVER, ATOP and
  4586.    CHOOSE tags.
  4587.  
  4588. Dave Raggett                                                           Page 97
  4589. HTML 3.0                                                       28th March 1995
  4590.  
  4591. SUB and SUP
  4592.  
  4593.    Permitted Context: %math
  4594.    Content Model: %math
  4595.  
  4596.    The SUB and SUP elements are used for subscripts and superscripts
  4597.    respectively, and are preferably rendered in reduced font. For
  4598.    integral and related signs the SUB and SUP elements are used for the
  4599.    lower and upper limits, for instance:
  4600.  
  4601.       ∑<sub>n = 0</sub><sup>&inf;</sup>
  4602.  
  4603.    which renders to (within limits of ascii art):
  4604.  
  4605.      infinity
  4606.        ---
  4607.        \
  4608.        /
  4609.        ---
  4610.       n = 0
  4611.  
  4612.    The SGML SHORTREF characters "_" and "^" can be used as
  4613.    abbreviations. The above example is abbreviated to:
  4614.  
  4615.        ∑_n = 0_^&inf;^
  4616.  
  4617.    --Need to give entity names for when you need the _ and ^
  4618.    characters!--
  4619.  
  4620.    You have to revert to the full form of the tags when superscripting
  4621.    a superscript or subscripting a subscript, as in:
  4622.  
  4623.        X<sub>a<sub>i</sub></sub>  which is  X
  4624.                                              a
  4625.                                               i
  4626.  
  4627.    You can also use superscripts to place expressions or words over
  4628.    binary operators, for instance in the following chemical reaction:
  4629.  
  4630.        4LiH + AlCl_3_ →^ether^ LiAlH_4_ + 3LiCl
  4631.  
  4632.    which renders as:
  4633.  
  4634.                       ether
  4635.         4LiH + AlCl  ------>  LiAlH  +  3LiCl
  4636.             3                      4
  4637.  
  4638.    The superscript is centered over the operator, and when feasible the
  4639.    operator stretched to match the width of the superscript.
  4640.  
  4641.    Note: Dont' use the shortrefs for SUB and SUP in normal text - they
  4642.    only work within MATH elements!
  4643.  
  4644. Dave Raggett                                                           Page 98
  4645. HTML 3.0                                                       28th March 1995
  4646.  
  4647. Placement of subscripts and superscripts
  4648.  
  4649.    Some times you will want to place superscripts to the left of a
  4650.    term. The simplest way to do this is with shortrefs, e.g.
  4651.  
  4652.        _4_^9^Be + _2^4^He → _6_^12^C + _0_^1^n
  4653.  
  4654.    which renders to (within limits of ascii art):
  4655.  
  4656.         9      4        12    1
  4657.          Be +   He  -->   C +  n
  4658.         4      2         6    0
  4659.  
  4660.    Subscripts and superscripts immediately before a term are rendered
  4661.    to the left of the term, where as subscripts and superscripts
  4662.    immediately after a term are rendered on its right. Opportunities
  4663.    for confusion arise when scripts for a preceding term are followed
  4664.    by scripts for another term. The simplest solution is to use
  4665.    whitespace to disambiguate the situation. For instance:
  4666.  
  4667.                          b                           b
  4668.        X_a_ ^b^Y  is  X   Y   while  X_a_^b^Y   is  X   Y
  4669.                        a                             a
  4670.                                               a  b
  4671.        but both X^a^ ^b^Y and X^a^^b^Y  are  X    Y
  4672.  
  4673.    The last case is disambiguated because the two superscript elements
  4674.    can't both apply to the preceding term, as they can't both be drawn
  4675.    in the same position. The same would apply to two subscript
  4676.    elements. If in any doubt, its wise to insert a space to make your
  4677.    meaning clear! If you prefer, you can use curly brackets, as in:
  4678.    {X_a_}{^b^Y}. These brackets are shortrefs for the BOX element and
  4679.    don't appear when the expression is finally rendered.
  4680.  
  4681.    The same rules apply when you use the full form of the SUB and SUP
  4682.    elements. The ALIGN attribute can be used to override the default
  4683.    position to render the script, which is normally taken from whether
  4684.    the script element precedes or follows the term to which it applies.
  4685.    For instance:
  4686.  
  4687.        X<sub align=right>a</sub> <sup align=left>b</sup>Y
  4688.        X<sub align=right>a</sub>Y<sup align=left>b</sup>
  4689.  
  4690.                              b
  4691.        both render to    X    Y
  4692.                           a
  4693.  
  4694.        while  X<sub align=right>a</sub><sup align=left>b</sup>Y
  4695.  
  4696.                        b
  4697.        renders to       X   Y
  4698.  
  4699. Dave Raggett                                                           Page 99
  4700. HTML 3.0                                                       28th March 1995
  4701.  
  4702.                          a
  4703.  
  4704.    In the last case, the SUP element act as a prefix superscript to X
  4705.    as there isn't a delimiter between it and the preceding SUB element.
  4706.    If in doubt, you should use brackets or whitespace to disambiguate
  4707.    the binding.
  4708.  
  4709. Permitted Attributes
  4710.  
  4711.    The ID, LANG and CLASS attributes for SUB and SUP are not used
  4712.    within MATH elements.
  4713.  
  4714.    ALIGN
  4715.        Subscripts and superscripts are normally placed to the right of
  4716.        the term to which they apply, while limits are normally placed
  4717.        above (or below) the symbol they apply to. The ALIGN attribute
  4718.        can be used to override the default positioning.
  4719.  
  4720.        align=left
  4721.            The script (or limit) is placed to the left of the term.
  4722.  
  4723.        align=center
  4724.            The script is centered on the term and placed below it for
  4725.            subscripts, and above it (for superscipts).
  4726.  
  4727.        align=right
  4728.            The scripts are placed to the right of the term.
  4729.  
  4730.        For example, you can force limits on integral signs to appear on
  4731.        the right rather than centered on the integral sign:
  4732.  
  4733.        ∫<sub align=right>0</sub><sup align=right>&inf;</sup>
  4734.  
  4735.        Note: The ALIGN attribute should be ignored by user agents for
  4736.        the SUB and SUP elements except within MATH elements.
  4737.  
  4738. Dave Raggett                                                          Page 100
  4739. HTML 3.0                                                       28th March 1995
  4740.  
  4741. The ABOVE element
  4742.  
  4743.    Permitted Context: %math
  4744.    Content Model: %math
  4745.  
  4746.    The <ABOVE> element is used to draw a line, arrow, curly bracket, or
  4747.    accent --above-- the expression enclosed by this element. Stretchy
  4748.    symbols should be stretched to match the width of the enclosed
  4749.    expression. For example:
  4750.  
  4751.                                         _____
  4752.        <above>X + Y</above>    giving   X + Y
  4753.  
  4754.                                                   =====
  4755.        <above sym=equals>X + Y</above>   giving   X + Y
  4756.  
  4757.    You can also place an expression centered above the line or arrow
  4758.    with the SUP element or its shortref form, for example:
  4759.  
  4760.    <above sym=cub>n(n - 1)(n - 2)&dots;(n - m + 1)</above>
  4761.    <sup><text>total of m factors</text></sup>
  4762.  
  4763.    which would be rendered as (within limits of ascii art):
  4764.  
  4765.               total of m factors
  4766.        /---------------^-------------\
  4767.        n(n - 1)(n - 2) ... (n - m + 1)
  4768.  
  4769. Permitted Attributes
  4770.  
  4771.    SYM
  4772.        An entity name for a symbol, e.g. --cub-- for a curly bracket
  4773.        (brace). Defaults to --line--. The other choices are: --larr--
  4774.        (left arrow), --rarr-- (right arrow), --hat-- and --tilde--.
  4775.  
  4776.    Note: Don't include the & prefix, so <above sym="→"> is wrong!
  4777.  
  4778. Dave Raggett                                                          Page 101
  4779. HTML 3.0                                                       28th March 1995
  4780.  
  4781. The BELOW element
  4782.  
  4783.    Permitted Context: %math
  4784.    Content Model: %math
  4785.  
  4786.    The <BELOW> element is used to draw a line, arrow, or curly bracket
  4787.    --below-- the expression enclosed by this element. For example:
  4788.  
  4789.        <below>X + Y</below>    giving   X + Y
  4790.                                         _____
  4791.  
  4792.        <below sym=rarr>X + Y</below>   giving   X + Y
  4793.                                                 ---->
  4794.  
  4795.    You can also place an expression centered below the line or arrow
  4796.    with the SUP element or its shortref form, for example:
  4797.  
  4798.    <above sym=cub>n(n - 1)(n - 2)&dots;(n - m + 1)</above>
  4799.    <sup><text>total of m factors</text></sup>
  4800.  
  4801.    which would be rendered as (within limits of ascii art):
  4802.  
  4803.        n(n - 1)(n - 2) ... (n - m + 1)
  4804.        \---------------v-------------/
  4805.               total of m factors
  4806.  
  4807.    --I can't find the ISO entity names for under/over curly brackets!--
  4808.  
  4809. Permitted Attributes
  4810.  
  4811.    SYM
  4812.        An entity name for a stretchy symbol, e.g. --cub-- for a curly
  4813.        bracket (brace). Defaults to --line--. The other choices are:
  4814.        --larr-- (left arrow), --rarr-- (right arrow), --hat-- and
  4815.        --tilde--.
  4816.  
  4817.    Note: Don't include the & prefix, so <below sym="→"> is wrong!
  4818.  
  4819. Dave Raggett                                                          Page 102
  4820. HTML 3.0                                                       28th March 1995
  4821.  
  4822. VEC, BAR, DOT, DDOT, HAT and TILDE
  4823.  
  4824.    Permitted Context: %math
  4825.    Content Model: %math
  4826.  
  4827.    These elements place an accent above the term enclosed by the
  4828.    element. --VEC-- draws a right arrow above the term; --BAR-- draws a
  4829.    line; --DOT-- and --DDOT-- draw a single and double dot
  4830.    respectively; --HAT-- and --TILDE-- draw the corresponding character
  4831.    above the term, for example:
  4832.  
  4833.                                ^
  4834.        <HAT>X</HAT>   giving   X
  4835.  
  4836.                                    ~
  4837.        <TILDE>X</TILDE>   giving   X
  4838.  
  4839.    Note: there are no attributes for these elements.
  4840.  
  4841. Dave Raggett                                                          Page 103
  4842. HTML 3.0                                                       28th March 1995
  4843.  
  4844. SQRT
  4845.  
  4846.    Permitted Context: %math
  4847.    Content Model: %math
  4848.  
  4849.    This draws a square root sign around the contents, for example the
  4850.    square root of 1 + x is expressed as:
  4851.  
  4852.        <SQRT>1 + x</SQRT>
  4853.  
  4854.    and possibly rendered as: --(this is the best I can do with ascii
  4855.    art!)--
  4856.  
  4857.          ----------
  4858.         / 1 + x
  4859.        v
  4860.  
  4861.    The SQRT element has no attributes.
  4862.  
  4863. ROOT
  4864.  
  4865.    Permitted Context: %math
  4866.    Content Model: %math, OF, %math
  4867.  
  4868.    This allows you to specify arbitary roots of an expression. The
  4869.    radix comes first, and is separated from the radicand by the <OF>
  4870.    tag. For example the cube root of 1 + x is expressed as:
  4871.  
  4872.        <ROOT>3<OF>1 + x</ROOT>
  4873.  
  4874.    and possibly rendered as:
  4875.  
  4876.          --------
  4877.        3/ 1 + x
  4878.        v
  4879.  
  4880.    The ROOT element has no attributes.
  4881.  
  4882. Dave Raggett                                                          Page 104
  4883. HTML 3.0                                                       28th March 1995
  4884.  
  4885. The ARRAY element
  4886.  
  4887.    Permitted Context: %math
  4888.    Content Model: one or more ROWs, each containing one or more ITEMs
  4889.  
  4890.    The <ARRAY> element is used for LaTeX-like arrays. It can only be
  4891.    used within MATH elements. For example:
  4892.  
  4893.        a      a    ...   a
  4894.         11     12         1n
  4895.  
  4896.        :      :    ...    :
  4897.  
  4898.        a      a    ...   a
  4899.         n1     n2         nn
  4900.  
  4901.    This is represented in HTML math by:
  4902.  
  4903.        <array>
  4904.         <row><item>a_11_<item>a_12_<item>&cdots;<item>a_1n_
  4905.         <row><item>&vdots;<item>&vdots;<item>&ddots;<item>&vdots;
  4906.         <row><item>a_n1_<item>a_n2_<item>&cdots;<item>a_nn_
  4907.        </array>
  4908.  
  4909.    You can specify the "+", "-" or "=" characters as column separators:
  4910.  
  4911.        a   x   +  a   x   +  ...  +  a   x    =   b
  4912.         11  1      12  2              1n  n        1
  4913.  
  4914.        a   x   +  a   x   +  ...  +  a   x    =   b
  4915.         22  1      22  2              2n  n        2
  4916.  
  4917.        .............................................
  4918.  
  4919.        a   x   +  a   x   +  ...  +  a   x    =   b
  4920.         n2  1      n2  2              nn  n        n
  4921.  
  4922.    This is represented by:
  4923.  
  4924.    <array coldef="C+C+C+C=C">
  4925.     <row><item>a_11_x_1_<item>a_12_x_2_<item>&cdots;<item>a_1n_x_n_<item>b_1_
  4926.     <row><item>a_21_x_1_<item>a_22_x_2_<item>&cdots;<item>a_2n_x_n_<item>b_2_
  4927.     <row><item colspan=5>&dotfill;
  4928.     <row><item>a_n1_x_1_<item>a_n2_x_2_<item>&cdots;<item>a_nn_x_n_<item>b_n_
  4929.    </array>
  4930.  
  4931.    The number of rows and colums is left to the parser to work out for
  4932.    itself by counting the number of ROW elements, and the number of
  4933.    ITEMs on each row. This is slightly complicated by the possibility
  4934.    that some items may span several rows and columns. If a row has less
  4935.    than the expected number of items after accounting for merged items,
  4936.  
  4937. Dave Raggett                                                          Page 105
  4938. HTML 3.0                                                       28th March 1995
  4939.  
  4940.    the missing items are assumed to be on the righthandside, and should
  4941.    be treated as empty. The row count should be based on the ROW
  4942.    elements, and additional rows, implied by items spanning rows beyond
  4943.    the end of the array, should be ignored.
  4944.  
  4945. Permitted Attributes
  4946.  
  4947.    ALIGN
  4948.        By default, arrays are vertically positioned so that preceding
  4949.        and following expressions are aligned with the mid point of the
  4950.        array. The ALIGN attribute can take on of the following values:
  4951.  
  4952.        TOP
  4953.            The top row of the array is aligned with the same baseline
  4954.            as the preceding or following expression.
  4955.  
  4956.        MIDDLE
  4957.            The middle row of the array is aligned with the same
  4958.            baseline as the preceding or following expression. This is
  4959.            the default. If there are an even number of rows, the
  4960.            midpoint of the array is used instead.
  4961.  
  4962.        BOTTOM
  4963.            The bottom row of the array is aligned with the same
  4964.            baseline as the preceding or following expression.
  4965.  
  4966.    COLDEF
  4967.        By default the columns are centered. This attribute can be used
  4968.        to specify the horizontal alignment for each column with
  4969.        character string formed by one capital letter per column, with L
  4970.        for left, C for center and R to right alignment, e.g. "LLCR" for
  4971.        a 4 column table.
  4972.  
  4973.        The COLDEF attribute can also be used to place a "+", "-" or "="
  4974.        between the columns, e.g. coldef="C+C+C+C=C". Whitespace within
  4975.        the COLDEF attribute is ignored.
  4976.  
  4977.    LDELIM
  4978.        An entity or character for the left delimiter, e.g. ldelim="["
  4979.        for a left square bracket or ldelim="|". The default is no
  4980.        delimiter.
  4981.  
  4982.    RDELIM
  4983.        An entity name or character for the right delimiter, e.g.
  4984.        rdelim="}" or rdelim="|". The default is no delimiter.
  4985.  
  4986.    LABELS
  4987.        The presence of this attribute has the same effect as TeX's
  4988.        bordermatrix command. The first row and column are separated
  4989.        from the rest of the array.
  4990.  
  4991. Dave Raggett                                                          Page 106
  4992. HTML 3.0                                                       28th March 1995
  4993.  
  4994.    Example of a labelled array:
  4995.  
  4996.          i     j     k
  4997.  
  4998.     a  (X     X     X  )
  4999.        ( 11    21    31)    <array ldelim="(" rdelim=")" labels>
  5000.        (               )     <row><item>dummy<item>i<item>j<item>k
  5001.     b  (X     X     X  )     <row><item>a<item>X_11_<item>X_21_<item>X_31_
  5002.        ( 12    22    32)     <row><item>b<item>X_12_<item>X_22_<item>X_32_
  5003.        (               )     <row><item>c<item>X_31_<item>X_32_<item>X_33_
  5004.     c  (X     X     X  )    </array>
  5005.        ( 13    23    33)
  5006.  
  5007.    Note: An item is always required for the first item of the first
  5008.    row, although its contents will be ignored for labelled arrays. This
  5009.    has been emphasized above with the value "dummy".
  5010.  
  5011. Dave Raggett                                                          Page 107
  5012. HTML 3.0                                                       28th March 1995
  5013.  
  5014. The ROW element
  5015.  
  5016.    Permitted Context: ARRAY
  5017.    Content Model: one or more ITEMs
  5018.  
  5019.    The <ROW> element is used for rows of items within the ARRAY
  5020.    element. It has no permitted attributes. The end tag </ROW> can
  5021.    always be left out.
  5022.  
  5023. The ITEM element
  5024.  
  5025.    Permitted Context: ROW
  5026.    Content Model: %math
  5027.  
  5028.    The <ITEM> element is used for items within a row of the ARRAY
  5029.    element. The end tag </ITEM> can always be left out.
  5030.  
  5031. Permitted Attributes for ITEM
  5032.  
  5033.    ALIGN
  5034.        By default expressions in items are centered horizontally. This
  5035.        can be altered by the COLDEF attribute on the parent ARRAY
  5036.        element, and overridden on a per item basis with the ALIGN
  5037.        attribute. The permitted values are: LEFT, CENTER or RIGHT.
  5038.  
  5039.    COLSPAN
  5040.        This can be used to provide a single item which spans several
  5041.        columns. The attribute value is a positive integer and defaults
  5042.        to one.
  5043.  
  5044.    ROWSPAN
  5045.        This can be used to provide a single item which spans several
  5046.        rows. The attribute value is a positive integer and defaults to
  5047.        one. It can be used together with the COLSPAN attribute.
  5048.  
  5049. Dave Raggett                                                          Page 108
  5050. HTML 3.0                                                       28th March 1995
  5051.  
  5052. TEXT
  5053.  
  5054.    Permitted Context: %math
  5055.    Content Model: PCDATA
  5056.  
  5057.    This element is used to include a few words of text within MATH
  5058.    elements. It avoids the need to separate words with spacing entities
  5059.    such as &sp; that are otherwise needed to provide adequate spacing.
  5060.    The text is rendered literally, and may include entities for
  5061.    accented characters etc.
  5062.  
  5063.    There are no attributes for this element.
  5064.  
  5065. Dave Raggett                                                          Page 109
  5066. HTML 3.0                                                       28th March 1995
  5067.  
  5068. B, T and BT
  5069.  
  5070.    Permitted Context: %math
  5071.    Content Model: %math
  5072.  
  5073.    These elements are used, when feasible, to alter the default fonts
  5074.    used to render variables and constants. Numbers, operators,
  5075.    delimiters and other symbols are unaffected. B renders its contents
  5076.    in bold, while T renders its contents in an upright font rather than
  5077.    an italic font. These can be nested to combine the effects, for a
  5078.    bold upright font. The BT element allows you to write
  5079.    <BT>--term--</BT> rather from having to write:
  5080.    <B><T>--term--</T></B>.
  5081.  
  5082. Permitted Attributes
  5083.  
  5084.    CLASS
  5085.        This a space separated list of SGML NAME tokens and is used to
  5086.        subclass tag names. By convention, the class names are
  5087.        interpreted hierarchically, with the most general class on the
  5088.        left and the most specific on the right, where classes are
  5089.        separated by a period.
  5090.  
  5091.        By using CLASS to describe the term as a --vector--, --tensor--
  5092.        or --matrix-- etc. user agents can do a better job when
  5093.        rendering to non-visual media. Further conventions for term
  5094.        class names are not part of this specification.
  5095.  
  5096.    Note: Don't use B for chemical formulae. These should be handled by
  5097.    subclassing the MATH element with class=chem, for instance: <MATH
  5098.    CLASS=CHEM>
  5099.  
  5100. Dave Raggett                                                          Page 110
  5101. HTML 3.0                                                       28th March 1995
  5102.  
  5103. Horizontal Rules
  5104.  
  5105.    Permitted Context: %Body.Content
  5106.    Content Model: Empty!
  5107.  
  5108.    The <HR> element is used for horizontal rules that act as dividers
  5109.    between sections. The SRC attribute can be used to designate a
  5110.    custom graphic, otherwise subclass HR with the CLASS attribute and
  5111.    specify the appropriate rendering with an associated style sheet.
  5112.  
  5113. Permitted Attributes
  5114.  
  5115.    ID
  5116.        An SGML identifier used as the target for hypertext links or for
  5117.        naming particular elements in associated style sheets.
  5118.        Identifiers are NAME tokens and must be unique within the scope
  5119.        of the current document.
  5120.  
  5121.    CLASS
  5122.        This a space separated list of SGML NAME tokens and is used to
  5123.        subclass tag names. For instance, <H2 CLASS=Section> defines a
  5124.        level 2 header that acts as a section header. By convention, the
  5125.        class names are interpreted hierarchically, with the most
  5126.        general class on the left and the most specific on the right,
  5127.        where classes are separated by a period. The CLASS attribute is
  5128.        most commonly used to attach a different style to some element,
  5129.        but it is recommended that where practical class names should be
  5130.        picked on the basis of the element's semantics, as this will
  5131.        permit other uses, such as restricting search through documents
  5132.        by matching on element class names. The conventions for choosing
  5133.        class names are outside the scope of this specification.
  5134.  
  5135.    CLEAR
  5136.        This attribute is common to all block-like elements. When text
  5137.        flows around a figure or table in the margin, you sometimes want
  5138.        to position the rule below the figure rather than alongside it.
  5139.        The CLEAR attribute allows you to move down unconditionally:
  5140.  
  5141.        clear=left
  5142.            move down until left margin is clear
  5143.  
  5144.        clear=right
  5145.            move down until right margin is clear
  5146.  
  5147.        clear=all
  5148.            move down until both margins are clear
  5149.  
  5150.        Alternatively, you can decide to place the rule alongside the
  5151.        figure just so long as there is enough room. The minimum width
  5152.        needed is specified as:
  5153.  
  5154. Dave Raggett                                                          Page 111
  5155. HTML 3.0                                                       28th March 1995
  5156.  
  5157.        clear="40 en"
  5158.            move down until there is at least 40 en units free
  5159.  
  5160.        clear="100 pixels"
  5161.            move down until there is at least 100 pixels free
  5162.  
  5163.        The style sheet (or browser defaults) may provide default
  5164.        minimum widths for each class of block-like elements.
  5165.  
  5166.    SRC
  5167.        Specifies a custom image for the rule. The image is specified as
  5168.        a URI. This attribute may appear together with the MD attribute.
  5169.  
  5170.    MD
  5171.        Specifies a message digest or cryptographic checksum for the
  5172.        associated graphic specified by the SRC attribute. It is used
  5173.        when you want to be sure that a linked object is indeed the same
  5174.        one that the author intended, and hasn't been modified in any
  5175.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  5176.        specifies an MD5 checksum encoded as a base64 character string.
  5177.        The MD attribute is generally allowed for all elements which
  5178.        support URI based links.
  5179.  
  5180. Dave Raggett                                                          Page 112
  5181. HTML 3.0                                                       28th March 1995
  5182.  
  5183. Preformatted Text (PRE)
  5184.  
  5185.    Permitted Context: %Body.Content, %flow, %block
  5186.    Content Model: subset of %text (see DTD for details)
  5187.  
  5188.    Preformatted text between the start and end PRE tag is rendered
  5189.    using a fixed with font, in addition whitespace characters are
  5190.    treated literally. The spacing and line breaks are rendered
  5191.    directly, unlike other elements, for which repeated whitespace
  5192.    chararacters are collapsed to a single space character and line
  5193.    breaks introduced automatically.
  5194.  
  5195.    *   Line breaks within the text are rendered as a move to the
  5196.        beginning of the next line. The exceptions are line breaks
  5197.        immediately following the starting PRE tag or immediately
  5198.        preceding the ending PRE tag, which should be ignored.
  5199.  
  5200.    *   The <P> tag should be avoided, but for robustness, user agents
  5201.        are recommended to treat these tags as line breaks.
  5202.  
  5203.    *   Anchor elements, and character highlighting elements may be
  5204.        used.
  5205.  
  5206.    *   FORM elements may be included, and the fixed width font
  5207.        exploited to control layout (the TAB or TABLE elements give
  5208.        similar control for normal text though).
  5209.  
  5210.    *   Block-like elements such as headers, lists, FIG and TABLES
  5211.        should be avoided.
  5212.  
  5213.    *   The horizontal tab character (encoded in US ASCII and ISO 8859-1
  5214.        as decimal 9) should be interpreted as the smallest nonzero
  5215.        number of spaces which will leave the number of characters so
  5216.        far on the line as a multiple of 8. Its use is deprecated!
  5217.  
  5218.    For example, a verse from Shelley (To a Skylark):
  5219.  
  5220.    <PRE>
  5221.           Higher still and higher
  5222.             From the earth thou springest
  5223.           Like a cloud of fire;
  5224.             The blue deep thou wingest,
  5225.    And singing still dost soar, and soaring ever singest.</PRE>
  5226.  
  5227.    which is rendered as:
  5228.  
  5229.           Higher still and higher
  5230.             From the earth thou springest
  5231.           Like a cloud of fire;
  5232.             The blue deep thou wingest,
  5233.    And singing still dost soar, and soaring ever singest.
  5234.  
  5235. Permitted Attributes
  5236.  
  5237. Dave Raggett                                                          Page 113
  5238. HTML 3.0                                                       28th March 1995
  5239.  
  5240.    ID
  5241.        An SGML identifier used as the target for hypertext links or for
  5242.        naming particular elements in associated style sheets.
  5243.        Identifiers are NAME tokens and must be unique within the scope
  5244.        of the current document.
  5245.  
  5246.    LANG
  5247.        This is one of the ISO standard language abbreviations, e.g.
  5248.        "en.uk" for the variation of English spoken in the United
  5249.        Kingdom. It can be used by parsers to select language specific
  5250.        choices for quotation marks, ligatures and hypenation rules etc.
  5251.        The language attribute is composed from the two letter language
  5252.        code from ISO 639, optionally followed by a period and a two
  5253.        letter country code from ISO 3166.
  5254.  
  5255.    CLASS
  5256.        This a space separated list of SGML NAME tokens and is used to
  5257.        subclass tag names. By convention, the class names are
  5258.        interpreted hierarchically, with the most general class on the
  5259.        left and the most specific on the right, where classes are
  5260.        separated by a period. The CLASS attribute is most commonly used
  5261.        to attach a different style to some element, but it is
  5262.        recommended that where practical class names should be picked on
  5263.        the basis of the element's semantics, as this will permit other
  5264.        uses, such as restricting search through documents by matching
  5265.        on element class names. The conventions for choosing class names
  5266.        are outside the scope of this specification.
  5267.  
  5268.    CLEAR
  5269.        This attribute is common to all block-like elements. When text
  5270.        flows around a figure or table in the margin, you sometimes want
  5271.        to start the preformatted text below the figure rather than
  5272.        alongside it. The CLEAR attribute allows you to move down unconditionally:
  5273.  
  5274.        clear=left
  5275.            move down until left margin is clear
  5276.  
  5277.        clear=right
  5278.            move down until right margin is clear
  5279.  
  5280.        clear=all
  5281.            move down until both margins are clear
  5282.  
  5283.        Alternatively, you can decide to place the element alongside the
  5284.        figure just so long as there is enough room. The minimum width
  5285.        needed is specified as:
  5286.  
  5287.        clear="40 en"
  5288.  
  5289. Dave Raggett                                                          Page 114
  5290. HTML 3.0                                                       28th March 1995
  5291.  
  5292.            move down until there is at least 40 en units free
  5293.  
  5294.        clear="100 pixels"
  5295.            move down until there is at least 100 pixels free
  5296.  
  5297.        The style sheet (or browser defaults) may provide default
  5298.        minimum widths for each class of block-like elements.
  5299.  
  5300.    WIDTH
  5301.        This is optionally used to specify a width as a number of
  5302.        characters to try and display within the current window width.
  5303.        The user agent can exploit this suggestion to select an
  5304.        appropriate font size. The default is a width of 80 characters.
  5305.        Where the WIDTH attribute is supported, widths of 40, 80 and 132
  5306.        characters should be presented optimally, with other widths
  5307.        being rounded up.
  5308.  
  5309.        --Can't we get rid of this obsolete nonsense? How many browsers
  5310.        support the WIDTH attribute anyway? --
  5311.  
  5312. Dave Raggett                                                          Page 115
  5313. HTML 3.0                                                       28th March 1995
  5314.  
  5315. Admonishments
  5316.  
  5317.    Permitted Context: %body.content, %flow, %block
  5318.    Content Model: %body.content
  5319.  
  5320.    The NOTE element is designed for use as admonishments such as notes,
  5321.    cautions or warnings, as commonly used in technical documentation.
  5322.    The CLASS attribute specifies the type of the element and is
  5323.    typically associated with different graphics such as a road traffic
  5324.    warning sign. The graphic can be customized with the SRC attribute.
  5325.  
  5326.    Example:
  5327.  
  5328.        <NOTE CLASS=WARNING>Please check with the local weather
  5329.        service before starting your climb. The mountain weather
  5330.        is subject to rapid deterioration. It is essential to
  5331.        carry a good map and compass.</NOTE>
  5332.  
  5333.    The class names: NOTE, CAUTION and WARNING are recommended for
  5334.    standard admonishments. In the absence of the CLASS attribute, a
  5335.    NOTE element is typically rendered indented, without an accompanying
  5336.    graphic.
  5337.  
  5338. Permitted Attributes
  5339.  
  5340.    ID
  5341.        An SGML identifier used as the target for hypertext links or for
  5342.        naming particular elements in associated style sheets.
  5343.        Identifiers are NAME tokens and must be unique within the scope
  5344.        of the current document.
  5345.  
  5346.    LANG
  5347.        This is one of the ISO standard language abbreviations, e.g.
  5348.        "en.uk" for the variation of English spoken in the United
  5349.        Kingdom. It can be used by parsers to select language specific
  5350.        choices for quotation marks, ligatures and hypenation rules etc.
  5351.        The language attribute is composed from the two letter language
  5352.        code from ISO 639, optionally followed by a period and a two
  5353.        letter country code from ISO 3166.
  5354.  
  5355.    CLASS
  5356.        This a space separated list of SGML NAME tokens and is used to
  5357.        subclass tag names. By convention, the class names are
  5358.        interpreted hierarchically, with the most general class on the
  5359.        left and the most specific on the right, where classes are
  5360.        separated by a period. The CLASS attribute is most commonly used
  5361.        to attach a different style to some element, but it is
  5362.        recommended that where practical class names should be picked on
  5363.        the basis of the element's semantics, as this will permit other
  5364.        uses, such as restricting search through documents by matching
  5365.        on element class names. Apart from the values suggested above,
  5366.        the conventions for choosing class names are outside the scope
  5367.        of this specification.
  5368.  
  5369. Dave Raggett                                                          Page 116
  5370. HTML 3.0                                                       28th March 1995
  5371.  
  5372.    CLEAR
  5373.        This attribute is common to all block-like elements. When text
  5374.        flows around a figure or table in the margin, you sometimes want
  5375.        to start the note below the figure rather than alongside it. The
  5376.        CLEAR attribute allows you to move down unconditionally:
  5377.  
  5378.        clear=left
  5379.            move down until left margin is clear
  5380.  
  5381.        clear=right
  5382.            move down until right margin is clear
  5383.  
  5384.        clear=all
  5385.            move down until both margins are clear
  5386.  
  5387.        Alternatively, you can decide to place the note alongside the
  5388.        figure just so long as there is enough room. The minimum width
  5389.        needed is specified as:
  5390.  
  5391.        clear="40 en"
  5392.            move down until there is at least 40 en units free
  5393.  
  5394.        clear="100 pixels"
  5395.            move down until there is at least 100 pixels free
  5396.  
  5397.        The style sheet (or browser defaults) may provide default
  5398.        minimum widths for each class of block-like elements.
  5399.  
  5400.    SRC
  5401.        Specifies an image to appear preceding the note. The image is
  5402.        specified as a URI. This attribute may appear together with the
  5403.        MD attribute.
  5404.  
  5405.    MD
  5406.        Specifies a message digest or cryptographic checksum for the
  5407.        associated graphic specified by the SRC attribute. It is used
  5408.        when you want to be sure that a linked object is indeed the same
  5409.        one that the author intended, and hasn't been modified in any
  5410.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  5411.        specifies an MD5 checksum encoded as a base64 character string.
  5412.        The MD attribute is generally allowed for all elements which
  5413.        support URI based links.
  5414.  
  5415. Dave Raggett                                                          Page 117
  5416. HTML 3.0                                                       28th March 1995
  5417.  
  5418. Footnotes
  5419.  
  5420.    Permitted Context: %body.content, %flow, %block
  5421.    Content Model: %body.content
  5422.  
  5423.    The FN element is designed for footnotes, and when practical,
  5424.    rendered as pop-up notes.
  5425.  
  5426.    Example:
  5427.  
  5428.    <DL>
  5429.    <DT>Hamlet: <DD>You should not have believed me, for virtue cannot
  5430.    so <a href="#fn1">inoculate</a> our old stock but we shall <a
  5431.    href="#fn2">relish of it</a>. I loved you not.
  5432.  
  5433.    <DT>Ophelia: <DD> I was the more deceived.
  5434.  
  5435.    <DT>Hamlet: <DD>Get thee to a nunnery. Why wouldst thou be a breeder
  5436.    of sinners? I am myself <a href="#fn2">indifferent honest</a> ...
  5437.    </DL>
  5438.  
  5439.    <fn id=fn1><i>inoculate</i> - graft</fn>
  5440.    <fn id=fn2><i>relish of it</i> - smack of it (our old sinful nature)</fn>
  5441.    <fn id=fn3><i>indifferent honest</i> - moderately virtuous</fn>
  5442.  
  5443.    Note: If %html.recommended is active, the HTML 3.0 DTD expects you
  5444.    to enclose plain text in a block element such as <P> e.g.
  5445.  
  5446.    <FN ID=fn23><P>A simple footnote</FN>
  5447.  
  5448. Permitted Attributes
  5449.  
  5450.    ID
  5451.        An SGML identifier used as the target for hypertext links or for
  5452.        naming particular elements in associated style sheets.
  5453.        Identifiers are NAME tokens and must be unique within the scope
  5454.        of the current document.
  5455.  
  5456.    LANG
  5457.        This is one of the ISO standard language abbreviations, e.g.
  5458.        "en.uk" for the variation of English spoken in the United
  5459.        Kingdom. It can be used by parsers to select language specific
  5460.        choices for quotation marks, ligatures and hypenation rules etc.
  5461.        The language attribute is composed from the two letter language
  5462.        code from ISO 639, optionally followed by a period and a two
  5463.        letter country code from ISO 3166.
  5464.  
  5465.    CLASS
  5466.        This a space separated list of SGML NAME tokens and is used to
  5467.        subclass tag names. By convention, the class names are
  5468.        interpreted hierarchically, with the most general class on the
  5469.        left and the most specific on the right, where classes are
  5470.        separated by a period. The CLASS attribute is most commonly used
  5471.  
  5472. Dave Raggett                                                          Page 118
  5473. HTML 3.0                                                       28th March 1995
  5474.  
  5475.        to attach a different style to some element, but it is
  5476.        recommended that where practical class names should be picked on
  5477.        the basis of the element's semantics, as this will permit other
  5478.        uses, such as restricting search through documents by matching
  5479.        on element class names. The conventions for choosing class names
  5480.        are outside the scope of this specification.
  5481.  
  5482. Dave Raggett                                                          Page 119
  5483. HTML 3.0                                                       28th March 1995
  5484.  
  5485. Block Quotes
  5486.  
  5487.    Permitted Context: %Body.Content, %flow, %block
  5488.    Content Model: %Body.Content followed by optional CREDIT element
  5489.  
  5490.    The BQ element is used for extended quotations. The tag name has
  5491.    been abbreviated from HTML 2.0's BLOCKQUOTE to the more convenient
  5492.    BQ, and the content model extended to allow the source of the
  5493.    quotation to be credited.
  5494.  
  5495.    Example:
  5496.  
  5497.    <BQ>
  5498.    <P>But now I shall shortly proffer him the strength and the
  5499.    courage of the Geats in combat. He who has the right to it shall
  5500.    go once more to the mead-drinking with confident heart, after
  5501.    the morning light of another day, the sun clothed in ethereal
  5502.    radiance, shines from the south upon the children of men.
  5503.    <CREDIT>Beowulf replying to Unferth, from the Anglo-Saxon poem
  5504.    "Beowolf", Cotton Vitellus A xv manuscript</CREDIT>
  5505.    </BQ>
  5506.  
  5507.    Note: If %html.recommended is active, the HTML 3.0 DTD expects you
  5508.    to enclose plain text in a block element such as <P>
  5509.  
  5510. Permitted Attributes
  5511.  
  5512.    ID
  5513.        An SGML identifier used as the target for hypertext links or for
  5514.        naming particular elements in associated style sheets.
  5515.        Identifiers are NAME tokens and must be unique within the scope
  5516.        of the current document.
  5517.  
  5518.    LANG
  5519.        This is one of the ISO standard language abbreviations, e.g.
  5520.        "en.uk" for the variation of English spoken in the United
  5521.        Kingdom. It can be used by parsers to select language specific
  5522.        choices for quotation marks, ligatures and hypenation rules etc.
  5523.        The language attribute is composed from the two letter language
  5524.        code from ISO 639, optionally followed by a period and a two
  5525.        letter country code from ISO 3166.
  5526.  
  5527.    CLASS
  5528.        This a space separated list of SGML NAME tokens and is used to
  5529.        subclass tag names. By convention, the class names are
  5530.        interpreted hierarchically, with the most general class on the
  5531.        left and the most specific on the right, where classes are
  5532.        separated by a period. The CLASS attribute is most commonly used
  5533.        to attach a different style to some element, but it is
  5534.        recommended that where practical class names should be picked on
  5535.        the basis of the element's semantics, as this will permit other
  5536.        uses, such as restricting search through documents by matching
  5537.        on element class names. The conventions for choosing class names
  5538.  
  5539. Dave Raggett                                                          Page 120
  5540. HTML 3.0                                                       28th March 1995
  5541.  
  5542.        are outside the scope of this specification.
  5543.  
  5544.    CLEAR
  5545.        This attribute is common to all block-like elements. When text
  5546.        flows around a figure or table in the margin, you sometimes want
  5547.        to start the block quote below the figure rather than alongside
  5548.        it. The CLEAR attribute allows you to move down unconditionally:
  5549.  
  5550.        clear=left
  5551.            move down until left margin is clear
  5552.  
  5553.        clear=right
  5554.            move down until right margin is clear
  5555.  
  5556.        clear=all
  5557.            move down until both margins are clear
  5558.  
  5559.        Alternatively, you can decide to place the quote alongside the
  5560.        figure just so long as there is enough room. The minimum width
  5561.        needed is specified as:
  5562.  
  5563.        clear="40 en"
  5564.            move down until there is at least 40 en units free
  5565.  
  5566.        clear="100 pixels"
  5567.            move down until there is at least 100 pixels free
  5568.  
  5569.        The style sheet (or browser defaults) may provide default
  5570.        minimum widths for each class of block-like elements.
  5571.  
  5572.    NOWRAP
  5573.        The NOWRAP attribute is used when you don't want the browser to
  5574.        automatically wrap lines. You can then explicitly specify line
  5575.        breaks using the BR element.
  5576.  
  5577. Dave Raggett                                                          Page 121
  5578. HTML 3.0                                                       28th March 1995
  5579.  
  5580. The ADDRESS element
  5581.  
  5582.    Permitted Context: %Body.Content
  5583.    Content Model: P or %text
  5584.  
  5585.    The ADDRESS element specifies such information as address, signature
  5586.    and authorship for the current document, and typically placed at the
  5587.    top or bottom of the document. When used with %text, the element
  5588.    acts similar to a paragraph with breaks before and after.
  5589.  
  5590.    Example:
  5591.  
  5592.    <ADDRESS>
  5593.    Newsletter editor<BR>
  5594.    J.R. Brown<BR>
  5595.    8723 Buena Vista, Smallville, CT 01234&t;BR>
  5596.    Tel: +1 (123) 456 7890
  5597.    </ADDRESS>
  5598.  
  5599. Permitted Attributes
  5600.  
  5601.    ID
  5602.        An SGML identifier used as the target for hypertext links or for
  5603.        naming particular elements in associated style sheets.
  5604.        Identifiers are NAME tokens and must be unique within the scope
  5605.        of the current document.
  5606.  
  5607.    LANG
  5608.        This is one of the ISO standard language abbreviations, e.g.
  5609.        "en.uk" for the variation of English spoken in the United
  5610.        Kingdom. It can be used by parsers to select language specific
  5611.        choices for quotation marks, ligatures and hypenation rules etc.
  5612.        The language attribute is composed from the two letter language
  5613.        code from ISO 639, optionally followed by a period and a two
  5614.        letter country code from ISO 3166.
  5615.  
  5616.    CLASS
  5617.        This a space separated list of SGML NAME tokens and is used to
  5618.        subclass tag names. By convention, the class names are
  5619.        interpreted hierarchically, with the most general class on the
  5620.        left and the most specific on the right, where classes are
  5621.        separated by a period. The CLASS attribute is most commonly used
  5622.        to attach a different style to some element, but it is
  5623.        recommended that where practical class names should be picked on
  5624.        the basis of the element's semantics, as this will permit other
  5625.        uses, such as restricting search through documents by matching
  5626.        on element class names. The conventions for choosing class names
  5627.        are outside the scope of this specification.
  5628.  
  5629.    CLEAR
  5630.        This attribute is common to all block-like elements. When text
  5631.        flows around a figure or table in the margin, you sometimes want
  5632.        to start the address element below the figure rather than
  5633.  
  5634. Dave Raggett                                                          Page 122
  5635. HTML 3.0                                                       28th March 1995
  5636.  
  5637.        alongside it. The CLEAR attribute allows you to move down unconditionally:
  5638.  
  5639.        clear=left
  5640.            move down until left margin is clear
  5641.  
  5642.        clear=right
  5643.            move down until right margin is clear
  5644.  
  5645.        clear=all
  5646.            move down until both margins are clear
  5647.  
  5648.        Alternatively, you can decide to place the address alongside the
  5649.        figure just so long as there is enough room. The minimum width
  5650.        needed is specified as:
  5651.  
  5652.        clear="40 en"
  5653.            move down until there is at least 40 en units free
  5654.  
  5655.        clear="100 pixels"
  5656.            move down until there is at least 100 pixels free
  5657.  
  5658.        The style sheet (or browser defaults) may provide default
  5659.        minimum widths for each class of block-like elements.
  5660.  
  5661.    NOWRAP
  5662.        The NOWRAP attribute is used when you don't want the browser to
  5663.        automatically wrap lines. You can then explicitly specify line
  5664.        breaks using the BR element.
  5665.  
  5666. Dave Raggett                                                          Page 123
  5667. HTML 3.0                                                       28th March 1995
  5668.  
  5669. The FORM element
  5670.  
  5671.    Permitted Context: %Body.Content
  5672.    Content Model: %Body.Content --plus-- INPUT, TEXTAREA, and SELECT
  5673.    Note you are not allowed to nest FORM elements!
  5674.  
  5675.    HTML fill-out forms can be used for questionaires, hotel
  5676.    reservations, order forms, data entry and a wide variety of other
  5677.    applications. The form is specified as part of an HTML document. The
  5678.    user fills in the form and then --submits-- it. The user agent then
  5679.    sends the form's contents as designated by the FORM element.
  5680.    Typically, this is to an HTTP server, but you can also email form
  5681.    contents for asynchronous processing.
  5682.  
  5683.    Forms are created by placing input fields within paragraphs,
  5684.    preformatted text, lists and tables. This gives considerable
  5685.    flexibility in designing the layout of forms.
  5686.  
  5687.    HTML 3.0 supports the following kinds of fields:
  5688.  
  5689.    *   Simple text fields
  5690.  
  5691.    *   Multi-line text fields
  5692.  
  5693.    *   Radio buttons
  5694.  
  5695.    *   Checkboxes
  5696.  
  5697.    *   Range controls (sliders, or knobs)
  5698.  
  5699.    *   Single/multiple choice menus
  5700.  
  5701.    *   Scribble on image
  5702.  
  5703.    *   File widgets for attaching files to forms.
  5704.  
  5705.    *   Submit buttons for sending form contents
  5706.  
  5707.    *   Reset buttons for resetting fields to their initial values
  5708.  
  5709.    *   Hidden fields for book keeping information
  5710.  
  5711.    It is expected that future revisions to HTML will add support for
  5712.    audio fields, multi-row entry of database tables, and extending
  5713.    multi-line text fields to support a range of other data types, in
  5714.    addition to plain text. Client-side scripts will provide the means
  5715.    to constrain field values and to add new field types.
  5716.  
  5717. Example of a form
  5718.  
  5719.    This fictitious example is a questionnaire. It uses the INPUT
  5720.    element for simple text fields, radio buttons, checkboxes, and the
  5721.    submit and reset buttons. The TEXTAREA field is used for a
  5722.  
  5723. Dave Raggett                                                          Page 124
  5724. HTML 3.0                                                       28th March 1995
  5725.  
  5726.    multi-line text entry field. The form fields are laid out with
  5727.    several paragraph elements and an unordered list. Notice the use of
  5728.    the NAME attribute to name each field:
  5729.  
  5730.    <TITLE>Sample Questionaire</TITLE>
  5731.    <H1>Sample Questionaire</H1>
  5732.  
  5733.    <P>Please fill out this questionaire:
  5734.  
  5735.    <FORM METHOD=post ACTION="http://www.hal.com/sample">
  5736.    <P>Your name: <input name="name" size="48">
  5737.    <P><input name="male" type=radio> Male
  5738.    <P><input name="female" type=radio>Female
  5739.      Number in family: <input name="family" type=int>
  5740.  
  5741.    <P>Cities in which you maintain a residence:
  5742.  
  5743.    <UL PLAIN>
  5744.    <LI><input name="city" type=checkbox value="kent"> Kent
  5745.    <LI><input name="city" type=checkbox value="miami"> Miami
  5746.    <LI>Others <textarea name="other" cols=48 rows=4></textarea>
  5747.    </UL>
  5748.  
  5749.    <P>Nickname: <INPUT NAME="nickname" size ="42">
  5750.  
  5751.    <P>Thank you for responding to this questionaire.
  5752.    <P><INPUT TYPE=SUBMIT> <INPUT TYPE=RESET>
  5753.    </FORM>
  5754.  
  5755.    Every form must be enclosed within a FORM element. There can be
  5756.    several forms in a single document, but the FORM element can't be
  5757.    nested. The browser is responsible for handling the input focus,
  5758.    i.e. which field will currently get keyboard input. Many platforms
  5759.    have existing conventions for forms, for example, using Tab and
  5760.    Shift-Tab to move the keyboard focus forwards and backwards between
  5761.    fields, and using the Enter (aka Return) key to submit the form.
  5762.  
  5763.    This standard defines and requires support for the HTTP access
  5764.    protocol only. Under any protocol, the submitted contents of the
  5765.    form logically consist of a list of name/value pairs where the names
  5766.    are given by the NAME attributes of the various fields in the FORM.
  5767.    Each field will normally be given a distinct name. Several radio
  5768.    buttons can share the same name, as this is how you specify that
  5769.    they belong to the same control group - at any time, only one button
  5770.    in the group can be selected.
  5771.  
  5772.    Note: The contents list of name/value pairs excludes unselected
  5773.    radio buttons and checkboxes. In general, any field with a null
  5774.    value can be omitted from the contents list.
  5775.  
  5776. Client-side scripts and fill-out forms
  5777.  
  5778. Dave Raggett                                                          Page 125
  5779. HTML 3.0                                                       28th March 1995
  5780.  
  5781.    HTML 3.0 doesn't provide direct support for constraining the values
  5782.    entered into text fields, or for derived fields whose values are
  5783.    calculated from the values of other fields. Rather than extending
  5784.    the markup to support these features, HTML 3.0 provides a means for
  5785.    associating the form with a script. Support for scripts is not
  5786.    required, however, and the HTML 3.0 specification doesn't cover the
  5787.    scripting languages or the details of their interface with the user
  5788.    agent
  5789.  
  5790.    The SCRIPT attribute of the FORM element specifies the script via a
  5791.    URI. The user agent down-loads the script and interprets it locally.
  5792.    Scripts handle a variety of messages for individual fields and the
  5793.    form as a whole. These messages correspond to events such as:
  5794.  
  5795.    *   Enter/Leave Form (for initialization and clean up)
  5796.  
  5797.    *   When a field gains or loses the input focus
  5798.  
  5799.    *   Mouse clicks and drags over a field
  5800.  
  5801.    *   Keyboard events
  5802.  
  5803.    Scripts can examine and set properties of fields. They can also
  5804.    examine a small set of standard properties of the user agent, for
  5805.    instance the user's name, the time of day, the type of user agent,
  5806.    and so on.
  5807.  
  5808.    Scripts can't do anything that might jeopardize the user or the host
  5809.    machine. Scripts can't send messages over the network, or read or
  5810.    write files. The library calls that are allowed are restricted to a
  5811.    very small and well defined set. These precautions are necessary for
  5812.    untrusted scripts. It is envisaged that script interpreters will
  5813.    offer a much wider application programming interface to trusted
  5814.    scripts, as determined on the basis of a digital signature by a
  5815.    trusted third party.
  5816.  
  5817. Permitted Attributes for FORM
  5818.  
  5819.    ACTION
  5820.        The ACTION attribute is a URL specifying the location to which
  5821.        the contents of the form is submitted to elicit a response. If
  5822.        the ACTION is missing, the URL for the document itself is
  5823.        assumed. The way data is submitted varies with the access
  5824.        protocol of the URL, and with the values of the METHOD and
  5825.        ENCTYPE attributes.
  5826.  
  5827.    METHOD
  5828.        This specifies variations in the protocol used to send the form
  5829.        contents. It is currently restricted to GET (the default) or
  5830.        POST. The attribute was introduced to inform user agents which
  5831.        HTTP methods the server supports.
  5832.  
  5833. Dave Raggett                                                          Page 126
  5834. HTML 3.0                                                       28th March 1995
  5835.  
  5836.    ENCTYPE
  5837.        This attribute specifies the MIME content type to be used to
  5838.        encode the form contents. It defaults to the string:
  5839.        "application/x-www-form-urlencoded"
  5840.  
  5841.    SCRIPT
  5842.        This can be used to give a URI for a script. The scripting
  5843.        language and the interface with the user agent is not part of
  5844.        the HTML 3.0 specification.
  5845.  
  5846. Dave Raggett                                                          Page 127
  5847. HTML 3.0                                                       28th March 1995
  5848.  
  5849. The INPUT fields
  5850.  
  5851.    Permitted Context: %Body.Content
  5852.    Content Model: --Empty!--
  5853.  
  5854.    The INPUT element is used for a wide variety of different kinds of
  5855.    entry fields within HTML fill-out forms. The TYPE attribute
  5856.    determines the type of field.
  5857.  
  5858. Single-line text fields --(type=text)--
  5859.  
  5860.    These are used for entering short text strings, like peoples names,
  5861.    numbers and dates. The visible width of the field in characters can
  5862.    be set with the SIZE attribute. When using a variable pitch font,
  5863.    the SIZE attribute sets the width in en units (half the point size).
  5864.    The user should be able to enter more than this, with the contents
  5865.    of the field scrolling horizontally as needed. The MAXLENGTH
  5866.    attribute can be used to specify the maximum number of characters
  5867.    permitted for the string.
  5868.  
  5869.    If the TYPE attribute is missing, the INPUT element is assumed to be
  5870.    a single-line text field. The NAME attribute is used to identify the
  5871.    field when the form's contents are converted to the name/value list.
  5872.    The VALUE field can be used to initialize the text string. Character
  5873.    entities can be used include accented characters in this string.
  5874.  
  5875.    Note: Use the TEXTAREA element for multi-line text entry fields.
  5876.  
  5877. Password fields --(type=password)--
  5878.  
  5879.    This is the same as single-line text fields except that each
  5880.    character typed is echoed by a shadow character, e.g. an asterisk or
  5881.    the space character. The user can see how many characters that have
  5882.    been typed but not what was typed.
  5883.  
  5884. Checkbox fields --(type=checkbox)--
  5885.  
  5886.    A checkbox field has two states: selected and unselected.Its
  5887.    name/value pair only appear in the submitted data when selected.
  5888.    Checkboxes are used for boolean attributes. They can also be used
  5889.    for attributes which can take multiple values at the same time. This
  5890.    is represented by a checkbox for each optional value, with the same
  5891.    name for each of the checkboxes. Unselected checkboxes don't appear
  5892.    in the submitted data. Both NAME and VALUE are required for
  5893.    checkboxes. To initialize the checkbox to its selected state,
  5894.    include the CHECKED attribute. Checkboxes provide an alternative to
  5895.    using the SELECT element for multiple-choice menus.
  5896.  
  5897. Radio Buttons --(type=radio)--
  5898.  
  5899.    Suitable for attributes which can take a single value from a set of
  5900.    alternatives. All radio buttons in the same group should be given
  5901.    the same NAME. Only the selected radio button in the group generates
  5902.  
  5903. Dave Raggett                                                          Page 128
  5904. HTML 3.0                                                       28th March 1995
  5905.  
  5906.    a name/value pair in the submitted data. Both NAME and VALUE are
  5907.    required for radio buttons. To initialize the radio button to its
  5908.    selected state, include the CHECKED attribute. Radio buttons offer
  5909.    an alternative to using the SELECT element for single choice menus.
  5910.  
  5911. Range fields --(type=range)--
  5912.  
  5913.    These allow the user to pick a numeric value in between a lower and
  5914.    an upper bound. The range is specified with the MIN and MAX
  5915.    attributes, as in:
  5916.  
  5917.        <input name=rating type=range min=1 max=10>
  5918.  
  5919.    If either the lower or upper bound is a real number, then the range
  5920.    is real valued, otherwise it is restricted to integer values only.
  5921.    The VALUE attribute can be used to initialize the range field. It an
  5922.    error for the value to lie outside the specified range. The default
  5923.    value is midway between the lower and upper limits.
  5924.  
  5925. Scribble on Image --(type=scribble)--
  5926.  
  5927.    These fields allow the user to scribble with a pointing device (such
  5928.    as a mouse or pen) on top of a predefined image. The image is
  5929.    specified as a URI with the SRC attribute. If the user agent can't
  5930.    display images, or can't provide a means for users to scribble on
  5931.    the image, then the field should be treated as a text field. The
  5932.    VALUE attribute can be used to initialize the text field for these
  5933.    users. It is ignored when the user agent provides scribble on image
  5934.    support.
  5935.  
  5936. File Attachments --(type=file)--
  5937.  
  5938.    This allows users to attach one or more files to be submitted with
  5939.    the form's contents. The ACCEPT attribute can be used to specify a
  5940.    comma separated list of MIME content types. These are used to
  5941.    restrict the kinds of files that can be attached to the form. For
  5942.    instance:
  5943.  
  5944.        <input name=pictures type=file accept="image/*">
  5945.  
  5946.    This example restricts files to match "image/*", i.e. to registered
  5947.    MIME image types. For windows based user agents, it is suggested
  5948.    that file fields display the name of the last file attached, with
  5949.    the ability to open a file dialog box to view the complete list of
  5950.    files attached so far. The accept attribute then acts to specify the
  5951.    filter on the list of candidate files.
  5952.  
  5953. Hidden fields --(type=hidden)--
  5954.  
  5955.    No field is presented to the user, but the content of the field is
  5956.    sent with the submitted form. This value may be used to transmit
  5957.    state information about client/server interaction, for instance a
  5958.    transaction identifier. These fields are needed because HTTP servers
  5959.  
  5960. Dave Raggett                                                          Page 129
  5961. HTML 3.0                                                       28th March 1995
  5962.  
  5963.    don't preserve state information from one request to the next.
  5964.  
  5965. Submit buttons --(type=submit)--
  5966.  
  5967.    These are buttons that when pressed submit the form's data. You can
  5968.    use the VALUE attribute to provide a non-editable label to be
  5969.    displayed on the button. The default label is application-specific.
  5970.    A graphic can be specified for the submit button using the SRC
  5971.    attribute.
  5972.  
  5973.    The submit button normally makes no contribution to the submitted
  5974.    data. The exception is when the field includes a NAME attribute, in
  5975.    which case, the name and value attributes are included with the
  5976.    submitted data. This can be used to distinguish which submit button
  5977.    the user pressed.
  5978.  
  5979. Image fields --(type=image)--
  5980.  
  5981.    These act like submit buttons but include the location where the
  5982.    user clicked on the image. The image is specified with the SRC
  5983.    attribute.
  5984.  
  5985.    --Should we phase these out, in favor of using SUBMIT? For this, we
  5986.    would need to ensure that the submit button included the location
  5987.    clicked when a graphic was specified with SRC.--
  5988.  
  5989. Reset buttons --(type=reset)--
  5990.  
  5991.    When a reset button is pressed, the form's fields are reset to their
  5992.    specified initial values. The label to be displayed on the button
  5993.    may be specified just as for the SUBMIT button. Likewise, the SRC
  5994.    attribute can be used to specify a graphic.
  5995.  
  5996. ------------------------------------------------------------------------------
  5997. Permitted Attributes for the INPUT element
  5998.  
  5999.    ID
  6000.        An SGML identifier used as the target for hypertext links or for
  6001.        naming particular elements in associated style sheets.
  6002.        Identifiers are NAME tokens and must be unique within the scope
  6003.        of the current document.
  6004.  
  6005.    LANG
  6006.        This is one of the ISO standard language abbreviations, e.g.
  6007.        "en.uk" for the variation of English spoken in the United
  6008.        Kingdom. It can be used by parsers to select language specific
  6009.        choices for quotation marks, ligatures and hypenation rules etc.
  6010.        The language attribute is composed from the two letter language
  6011.        code from ISO 639, optionally followed by a period and a two
  6012.        letter country code from ISO 3166.
  6013.  
  6014.    CLASS
  6015.        This a space separated list of SGML NAME tokens and is used to
  6016.  
  6017. Dave Raggett                                                          Page 130
  6018. HTML 3.0                                                       28th March 1995
  6019.  
  6020.        subclass tag names. By convention, the class names are
  6021.        interpreted hierarchically, with the most general class on the
  6022.        left and the most specific on the right, where classes are
  6023.        separated by a period. The CLASS attribute is most commonly used
  6024.        to attach a different style to some element, but it is
  6025.        recommended that where practical class names should be picked on
  6026.        the basis of the element's semantics, as this will permit other
  6027.        uses, such as restricting search through documents by matching
  6028.        on element class names. The conventions for choosing class names
  6029.        are outside the scope of this specification.
  6030.  
  6031.    TYPE
  6032.        Defines the type of the field as one of: TEXT, PASSWORD,
  6033.        CHECKBOX, RADIO, RANGE, FILE, SCRIBBLE, HIDDEN, SUBMIT, IMAGE or
  6034.        RESET. It defaults to TEXT. The attribute value is an SGML name
  6035.        token and and as such is case insensitive.
  6036.  
  6037.    NAME
  6038.        This provides a character string used to name the field when
  6039.        submitting the form's data. Several fields may share the same
  6040.        name, for instance a group of radio buttons or checkboxes. The
  6041.        name is case insensitive.
  6042.  
  6043.    VALUE
  6044.        This is a character string or number which is used to initialize
  6045.        text, range and hidden fields.
  6046.  
  6047.    DISABLED
  6048.        When present, the field should be rendered as normal, but can't
  6049.        be modified by the user. Where practical the rendering should
  6050.        provide a cue that the field is disabled e.g. by graying out the
  6051.        text, changing the color of the background or similar.
  6052.  
  6053.    ERROR
  6054.        This attribute specifies an error message explaining why the
  6055.        field's current value is incorrect. When this attribute is
  6056.        missing, the field can be assumed to be ok. User agents are
  6057.        recommended to provide a cue to indicate that the field is in
  6058.        error.
  6059.  
  6060.    CHECKED
  6061.        The presence of this attribute indicates that a radio button or
  6062.        checbox should be initialized to its selected state.
  6063.  
  6064.    SIZE
  6065.        This specifies the visible width of a text or password field.
  6066.        For fixed pitch fonts, the size attribute specifies the maximum
  6067.        number of characters visible, while for variable pitch fonts,
  6068.        the attribute specifies the width in en units (half the point
  6069.        size).
  6070.  
  6071.    MAXLENGTH
  6072.        Specifies the maximum number of characters permitted for text
  6073.  
  6074. Dave Raggett                                                          Page 131
  6075. HTML 3.0                                                       28th March 1995
  6076.  
  6077.        and password fields.
  6078.  
  6079.    MIN
  6080.        This is an integer or real number and specifies the lower bound
  6081.        for a range field.
  6082.  
  6083.    MAX
  6084.        This is an integer or real number and specifies the upper bound
  6085.        for a range field.
  6086.  
  6087.    ACCEPT
  6088.        A comma separated list of MIME content types for use in
  6089.        restricting the types of files that can be attached to a form
  6090.        with a file field.
  6091.  
  6092.    SRC (Source)
  6093.        The SRC attribute specifies the URI for an image for use as the
  6094.        background of a SCRIBBLE, IMAGE, SUBMIT or RESET field. Its
  6095.        syntax is the same as that of the HREF attribute of the <A> tag.
  6096.  
  6097.    MD
  6098.        Specifies a message digest or cryptographic checksum for the
  6099.        associated image specified by the SRC attribute. It is used when
  6100.        you want to be sure that the image is indeed the same one that
  6101.        the author intended, and hasn't been modified in any way. For
  6102.        instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which specifies
  6103.        an MD5 checksum encoded as a base64 character string. The MD
  6104.        attribute is generally allowed for all elements which support
  6105.        URI based links.
  6106.  
  6107.    ALIGN
  6108.        This attribute only applies to fields with background images,
  6109.        i.e. SCRIBBLE, IMAGE, SUBMIT or RESET fields. It is intended to
  6110.        provide the same positional control as for the IMG element. The
  6111.        ALIGN attribute takes the values TOP or MIDDLE or BOTTOM,
  6112.        defining whether the top or middle or bottom of the field should
  6113.        be aligned with the baseline for the text line in which the
  6114.        INPUT element appears.
  6115.  
  6116.        With ALIGN=LEFT, the field will float down and over to the
  6117.        current left margin, and subsequent text will wrap around the
  6118.        right hand side of the field. Likewise for ALIGN=RIGHT, the
  6119.        field aligns with the current right margin and, and text wraps
  6120.        around the left.
  6121.  
  6122. Dave Raggett                                                          Page 132
  6123. HTML 3.0                                                       28th March 1995
  6124.  
  6125. TEXTAREA
  6126.  
  6127.    Permitted Context: %Body.Content
  6128.    Content Model: PCDATA (i.e. text and entities)
  6129.  
  6130. TEXTAREA
  6131.  
  6132.    To let users enter more than one line of text, use the TEXTAREA
  6133.    element. For example:
  6134.  
  6135.    <TEXTAREA NAME="address" ROWS=64 COLS=6>
  6136.    HaL Computer Systems
  6137.    1315 Dell Avenue
  6138.    Campbell, California 95008
  6139.    </TEXTAREA>
  6140.  
  6141.    The text up to the end tag is used to initialize the field's value.
  6142.    The initialization text can contain SGML entities, e.g. for accented
  6143.    characters, but is otherwise treated as literal text. This end tag
  6144.    is always required even if the field is initially blank. When
  6145.    submitting a form, the line terminators are implementation
  6146.    dependent. Servers should be capable of recognizing a CR immediately
  6147.    followed by an LF, or separate CRs and LFs as all signifying the
  6148.    ends of lines. User agents should tolerate the same range of line
  6149.    terminators within the initialization text.
  6150.  
  6151.    In a typical rendering, the ROWS and COLS attributes determine the
  6152.    visible dimension of the field in characters. The field is rendered
  6153.    in a fixed-width font. User agents should allow text to grow beyond
  6154.    these limits by scrolling as needed. The user agent is recommended
  6155.    to wrap words as they are entered, to fit within the textarea field.
  6156.    It is further recommended that a means is provided for users to turn
  6157.    this feature off and on.
  6158.  
  6159.    Note: In the initial design for forms, multi-line text fields were
  6160.    supported by the INPUT element with TYPE=TEXT. Unfortunately, this
  6161.    causes problems for fields with long text values as SGML limits the
  6162.    length of attribute literals. The HTML 2.0 DTD allows for up to 1024
  6163.    characters (the SGML default is only 240 characters).
  6164.  
  6165. Permitted Attributes
  6166.  
  6167.    ID
  6168.        An SGML identifier used as the target for hypertext links or for
  6169.        naming particular elements in associated style sheets.
  6170.        Identifiers are NAME tokens and must be unique within the scope
  6171.        of the current document.
  6172.  
  6173.    LANG
  6174.        This is one of the ISO standard language abbreviations, e.g.
  6175.        "en.uk" for the variation of English spoken in the United
  6176.        Kingdom. It can be used by parsers to select language specific
  6177.  
  6178. Dave Raggett                                                          Page 133
  6179. HTML 3.0                                                       28th March 1995
  6180.  
  6181.        choices for quotation marks, ligatures and hypenation rules etc.
  6182.        The language attribute is composed from the two letter language
  6183.        code from ISO 639, optionally followed by a period and a two
  6184.        letter country code from ISO 3166.
  6185.  
  6186.    CLASS
  6187.        This a space separated list of SGML NAME tokens and is used to
  6188.        subclass tag names. By convention, the class names are
  6189.        interpreted hierarchically, with the most general class on the
  6190.        left and the most specific on the right, where classes are
  6191.        separated by a period. The CLASS attribute is most commonly used
  6192.        to attach a different style to some element, but it is
  6193.        recommended that where practical class names should be picked on
  6194.        the basis of the element's semantics, as this will permit other
  6195.        uses, such as restricting search through documents by matching
  6196.        on element class names. The conventions for choosing class names
  6197.        are outside the scope of this specification.
  6198.  
  6199.    NAME
  6200.        The formal name of the field which is used in the form's
  6201.        contents list.
  6202.  
  6203.    ROWS
  6204.        This gives the visible number of text lines shown by the field.
  6205.        User agents should allow text to grow beyond these limits by
  6206.        scrolling as needed.
  6207.  
  6208.    COLS
  6209.        The visible number of characters across the field. User agents
  6210.        should allow text to grow beyond these limits by scrolling as
  6211.        needed.
  6212.  
  6213.    DISABLED
  6214.        When present, the field should be rendered as normal, but can't
  6215.        be modified by the user. Where practical the rendering should
  6216.        provide a cue that the field is disabled e.g. by graying out the
  6217.        text, changing the color of the background or similar.
  6218.  
  6219.    ERROR
  6220.        This attribute specifies an error message explaining why the
  6221.        field's current value is incorrect. When this attribute is
  6222.        missing, the field can be assumed to be ok. User agents are
  6223.        recommended to provide a cue to indicate that the field is in
  6224.        error.
  6225.  
  6226.    ALIGN
  6227.        Take values TOP or MIDDLE or BOTTOM, defining whether the top or
  6228.        middle or bottom row of the field should be aligned with the
  6229.        baseline for the text line in which the TEXTAREA element
  6230.        appears. The default is align=top.
  6231.  
  6232.        With ALIGN=LEFT, the field will float down and over to the
  6233.        current left margin, and subsequent text will wrap around the
  6234.  
  6235. Dave Raggett                                                          Page 134
  6236. HTML 3.0                                                       28th March 1995
  6237.  
  6238.        right hand side of the field. Likewise for ALIGN=RIGHT, the
  6239.        field aligns with the current right margin and, and text wraps
  6240.        around the left.
  6241.  
  6242. Dave Raggett                                                          Page 135
  6243. HTML 3.0                                                       28th March 1995
  6244.  
  6245. The SELECT element
  6246.  
  6247.    Permitted Context: %Body.Content --but-- must be within FORM
  6248.    Content Model: one ore more OPTION elements
  6249.  
  6250.    The SELECT element is used for single and multiple choice menus. It
  6251.    is generally rendered as a drop-down or pop-up menu, and offers a
  6252.    more compact alternative to using radio buttons for single choice
  6253.    menus, or checkboxes for multiple choice menus.
  6254.  
  6255.    Example:
  6256.  
  6257.    <SELECT NAME="flavor">
  6258.    <OPTION>Vanilla
  6259.    <OPTION>Strawberry
  6260.    <OPTION>Rum and Raisin
  6261.    <OPTION>Peach and Orange
  6262.    </SELECT>
  6263.  
  6264.    This is a single choice menu. When you want a multiple choice menu,
  6265.    you need to include the MULTIPLE attribute with the SELECT element,
  6266.    e.g. <SELECT MULTIPLE NAME="flavor">.
  6267.  
  6268.    The NAME attribute is used when creating the name/value list
  6269.    describing the form's contents. A name/value pair is contributed for
  6270.    each selected option. The value is taken from the OPTION's VALUE
  6271.    attribute, and defaults to the content of the OPTION when the VALUE
  6272.    attribute is missing.
  6273.  
  6274.    For single choice menus, if no option is initially marked as
  6275.    selected, then the first item listed is selected. This is
  6276.    inappropriate for multiple choice menus, though.
  6277.  
  6278. Graphical Menus
  6279.  
  6280.    HTML 3.0 extends the SELECT element to support graphical menus. This
  6281.    is allows you to specify an image for the SELECT element, and
  6282.    hotzones for each of the OPTION elements. In this way the same menu
  6283.    can be rendered as a conventional text-based menu for non-graphical
  6284.    user agents and a graphical menu for graphical user agents.
  6285.  
  6286.    The image is specified in the same way as for IMG elements. This
  6287.    means you can specify suggested values for the width and height. You
  6288.    can also float the image to the left or right margins and flow other
  6289.    elements around it. The hotzones for OPTION elements are specified
  6290.    using the SHAPE attribute in the same way as for anchor elements.
  6291.  
  6292. Permitted Attributes
  6293.  
  6294.    ID
  6295.        An SGML identifier used as the target for hypertext links or for
  6296.        naming particular elements in associated style sheets.
  6297.  
  6298. Dave Raggett                                                          Page 136
  6299. HTML 3.0                                                       28th March 1995
  6300.  
  6301.        Identifiers are NAME tokens and must be unique within the scope
  6302.        of the current document.
  6303.  
  6304.    LANG
  6305.        This is one of the ISO standard language abbreviations, e.g.
  6306.        "en.uk" for the variation of English spoken in the United
  6307.        Kingdom. It can be used by parsers to select language specific
  6308.        choices for quotation marks, ligatures and hypenation rules etc.
  6309.        The language attribute is composed from the two letter language
  6310.        code from ISO 639, optionally followed by a period and a two
  6311.        letter country code from ISO 3166.
  6312.  
  6313.    CLASS
  6314.        This a space separated list of SGML NAME tokens and is used to
  6315.        subclass tag names. By convention, the class names are
  6316.        interpreted hierarchically, with the most general class on the
  6317.        left and the most specific on the right, where classes are
  6318.        separated by a period. The CLASS attribute is most commonly used
  6319.        to attach a different style to some element, but it is
  6320.        recommended that where practical class names should be picked on
  6321.        the basis of the element's semantics, as this will permit other
  6322.        uses, such as restricting search through documents by matching
  6323.        on element class names. The conventions for choosing class names
  6324.        are outside the scope of this specification.
  6325.  
  6326.    NAME
  6327.        The formal name of the menu which is used in the form's contents
  6328.        list.
  6329.  
  6330.    MULTIPLE
  6331.        The presence of this attribute denotes that the SELECT element
  6332.        defines a multiple choice menu. In its absence, the element
  6333.        defines a single choice menu.
  6334.  
  6335.    DISABLED
  6336.        When present, the menu should be rendered as normal, but can't
  6337.        be modified by the user. Where practical the rendering should
  6338.        provide a cue that the menu is disabled e.g. by graying out the
  6339.        text, changing the color of the background or similar.
  6340.  
  6341.    ERROR
  6342.        This attribute specifies an error message explaining why the
  6343.        menu's current selections are incorrect. Further error messages
  6344.        can be attached to individual options. When this attribute is
  6345.        missing, the menu can be assumed to be ok. User agents are
  6346.        recommended to provide a cue to indicate that the menu is in
  6347.        error.
  6348.  
  6349.    SRC (Source)
  6350.        The SRC attribute is used for graphical menus to specify the URI
  6351.        for the image. Its syntax is the same as that of the HREF
  6352.        attribute of the <A> tag.
  6353.  
  6354. Dave Raggett                                                          Page 137
  6355. HTML 3.0                                                       28th March 1995
  6356.  
  6357.    MD
  6358.        Specifies a message digest or cryptographic checksum for the
  6359.        associated image specified by the SRC attribute. It is used when
  6360.        you want to be sure that the image is indeed the same one that
  6361.        the author intended, and hasn't been modified in any way. For
  6362.        instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which specifies
  6363.        an MD5 checksum encoded as a base64 character string. The MD
  6364.        attribute is generally allowed for all elements which support
  6365.        URI based links.
  6366.  
  6367.    WIDTH
  6368.        Optional suggested width for the image. By default, this is
  6369.        given in pixels.
  6370.  
  6371.    HEIGHT
  6372.        Optional suggested height for the image. By default, this is
  6373.        given in pixels.
  6374.  
  6375.    UNITS
  6376.        This optional attribute specifies the units for the width and
  6377.        height attributes. It is one of: units=pixels (the default) or
  6378.        units=em (the width of the letter "m") which scales with the
  6379.        font size.
  6380.  
  6381.    ALIGN
  6382.        Take values TOP or MIDDLE or BOTTOM, defining whether the top or
  6383.        middle or bottom of the graphic should be aligned with the
  6384.        baseline for the text line in which the IMG element appears.
  6385.  
  6386.        With ALIGN=LEFT, the graphic will float down and over to the
  6387.        current left margin, and subsequent text will wrap around the
  6388.        right hand side of the graphic. Likewise for ALIGN=RIGHT, the
  6389.        graphic aligns with the current right margin and, and text wraps
  6390.        around the left.
  6391.  
  6392. Dave Raggett                                                          Page 138
  6393. HTML 3.0                                                       28th March 1995
  6394.  
  6395. Menu OPTIONs
  6396.  
  6397.    Permitted Context: SELECT
  6398.    Content Model: PCDATA
  6399.  
  6400.    The OPTION element can only occur within a SELECT element. It
  6401.    represents a possible choice. It can only contain text, together
  6402.    with SGML entities for accented characters etc.
  6403.  
  6404.    When the form is submitted, the NAME of the enclosing SELECT element
  6405.    is paired with the OPTION's VALUE attribute to contribute a
  6406.    name/value pair for the selection. Unselected options don't
  6407.    contribute to the form's submitted data. You can initialize the
  6408.    option to its selected state by including the SELECT attribute.
  6409.  
  6410.    The SHAPE attribute is used for graphical menus to specify the
  6411.    region of the background image to be associated with this option. It
  6412.    uses the same definition as for the anchor element.
  6413.  
  6414. Permitted Attributes
  6415.  
  6416.    ID
  6417.        An SGML identifier used as the target for hypertext links or for
  6418.        naming particular elements in associated style sheets.
  6419.        Identifiers are NAME tokens and must be unique within the scope
  6420.        of the current document.
  6421.  
  6422.    LANG
  6423.        This is one of the ISO standard language abbreviations, e.g.
  6424.        "en.uk" for the variation of English spoken in the United
  6425.        Kingdom. It can be used by parsers to select language specific
  6426.        choices for quotation marks, ligatures and hypenation rules etc.
  6427.        The language attribute is composed from the two letter language
  6428.        code from ISO 639, optionally followed by a period and a two
  6429.        letter country code from ISO 3166.
  6430.  
  6431.    CLASS
  6432.        This a space separated list of SGML NAME tokens and is used to
  6433.        subclass tag names. By convention, the class names are
  6434.        interpreted hierarchically, with the most general class on the
  6435.        left and the most specific on the right, where classes are
  6436.        separated by a period. The CLASS attribute is most commonly used
  6437.        to attach a different style to some element, but it is
  6438.        recommended that where practical class names should be picked on
  6439.        the basis of the element's semantics, as this will permit other
  6440.        uses, such as restricting search through documents by matching
  6441.        on element class names. The conventions for choosing class names
  6442.        are outside the scope of this specification.
  6443.  
  6444.    DISABLED
  6445.        When present, the option should be rendered as normal, but can't
  6446.        be modified by the user. Where practical the rendering should
  6447.        provide a cue that the option is disabled e.g. by graying out
  6448.  
  6449. Dave Raggett                                                          Page 139
  6450. HTML 3.0                                                       28th March 1995
  6451.  
  6452.        the text, changing the color of the background or similar.
  6453.  
  6454.    ERROR
  6455.        This attribute specifies an error message explaining why the
  6456.        option is inappropriate. When this attribute is missing, the
  6457.        option can be assumed to be ok. User agents are recommended to
  6458.        provide a cue to indicate that the option is in error.
  6459.  
  6460.    VALUE
  6461.        The string to be used together with the name attribute of the
  6462.        enclosing select element, when submitting the form. It defaults
  6463.        to the content of the OPTION element.
  6464.  
  6465.    SELECTED
  6466.        When present, this attribute signifies that the option should be
  6467.        initialized in its selected state. It is an error for more than
  6468.        one option to be selected for single choice menus.
  6469.  
  6470.    SHAPE
  6471.        This attribute is used within menus to define shaped hotzones
  6472.        associated with this option's value. The attribute value is a
  6473.        string taking one of the following forms:
  6474.  
  6475.        "default"
  6476.            Used to define a default menu choice for the menu
  6477.            background.
  6478.  
  6479.        "circle x, y, r"
  6480.            Where x and y define the center and r specifies the radius.
  6481.  
  6482.        "rect x, y, w, h"
  6483.            Where x, y define the upper left corner and w, h define the
  6484.            width and height respectively
  6485.  
  6486.        "polygon x1, y1, x2, y2, ..."
  6487.            Given n pairs of x, y coordinates, the polygon is closed by
  6488.            a line linking the n'th point to the first. Intersecting
  6489.            polygons use the non-zero winding number rule to determine
  6490.            if a point lies inside the polygon.
  6491.  
  6492.        If a pointer event occurs in a region where two or more shapes
  6493.        overlap, the distance from the point to the center of gravity of
  6494.        each of the overlapping shapes is computed and the closest one
  6495.        chosen. This feature is useful when you want lots of closely
  6496.        spaced hotzones, for example over points on a map, as it allows
  6497.        you to use simple shapes without worrying about overlaps.
  6498.  
  6499.        Note: The x coordinate increases to the right, and the y
  6500.        coordinate increases downwards in the same way as IMG and image
  6501.        maps. If both numbers are integers, the coordinates are
  6502.        interpreted as pixel offsets from the upper left corner of the
  6503.  
  6504. Dave Raggett                                                          Page 140
  6505. HTML 3.0                                                       28th March 1995
  6506.  
  6507.        image. Otherwise, the coordinates are interpreted as scaled
  6508.        values in the range 0.0 to 1.0 across the image. Note the syntax
  6509.        is tolerant of repeated white space characters between tokens.
  6510.  
  6511. Dave Raggett                                                          Page 141
  6512. HTML 3.0                                                       28th March 1995
  6513.  
  6514. Special Characters
  6515.  
  6516.    This section contains information of how user agents should treat
  6517.    control characters and other special characters.
  6518.  
  6519. Character Data
  6520.  
  6521.    The characters between the tags represent text encoded according to
  6522.    ISO 8859/1 8-bit single-byte coded graphic character set known as
  6523.    Latin Alphabet No. 1, or simply Latin-1. There are 256 character
  6524.    positions in the Latin-1 encoding. Latin-1 includes characters from
  6525.    most Western European languages. It consists of the space character,
  6526.    186 characters that form a subset of the graphic characters in ISO
  6527.    6937/2 (1983), and four additional characters that are intended for
  6528.    inclusion in ISO 6937/2. For more information, see Character Sets
  6529.  
  6530.    The lower 128 character positions include a space, 33 control
  6531.    characters, the 26 upper- and lowercase letters of the english
  6532.    alphabet, 10 numerals and 32 other printing characters This subset,
  6533.    functionally identical to ASCII, is defined by ISO 646 7-bit coded
  6534.    character set for information interchange, also known as the
  6535.    International Reference Version. ISO 646 is identical in most
  6536.    respect to the ANSI standard for ASCII (American Standard Code for
  6537.    Information Interchange). The only significant difference between
  6538.    ISO 646 and ASCII is the specific names assigned to the control
  6539.    characters which occupy positions 00-31 and 127
  6540.  
  6541.    The upper 128 positions include a non-breaking space, a soft hyphen
  6542.    indicator, 93 graphical characters, 8 unassigned characters, and 25
  6543.    control characters. The non-breaking space and soft hyphen indicator
  6544.    are not recognized and interpreted by all HTML browsers, and their
  6545.    use is discouraged
  6546.  
  6547.    There are 58 character positions which are occupied by control
  6548.    characters. See the discussion for details on the interpretation of
  6549.    control characters. Because certain special characters are subject
  6550.    to interpretation and special processing, information providers and
  6551.    browser implementors should follow these guidelines
  6552.  
  6553.    Certain characters may not be accessible from your keyboard, or some
  6554.    part of your system (i.e. translation software) may not be equipped
  6555.    to deal with 8-bit character codes. HTML and many WWW browsers
  6556.    provide character entity references and numerical character
  6557.    references to facilitate the entry and interpretation of characters
  6558.    by name and by numerical position.
  6559.  
  6560.    Because certain characters will be interpreted as markup, they
  6561.    should be"escaped"; that is, represented by markup -- numeric
  6562.    character or entity references.
  6563.  
  6564. ------------------------------------------------------------------------------
  6565. Special Characters
  6566.  
  6567. Dave Raggett                                                          Page 142
  6568. HTML 3.0                                                       28th March 1995
  6569.  
  6570.    Certain characters are taken to have special meaning within the
  6571.    context of an HTML document. There are two printing characters which
  6572.    may be interpreted by the browser to have an effect of the format of
  6573.    the text:
  6574.  
  6575. Space
  6576.  
  6577.    *   Interpreted as a word space in all contexts except <PRE>.
  6578.  
  6579.    *   Interpreted as a no-break space within <PRE>.
  6580.  
  6581.    The character entities   and   denote an en space and an
  6582.    em space respectively, where an en space is half the point size and
  6583.    an em space is equal to the point size of the current font. For
  6584.    fixed pitch fonts, the user agent can treat the en space as being
  6585.    equivalent to a single space character, and the em space as being
  6586.    equuivalent to two space characters.
  6587.  
  6588. Non-breaking Space ( )
  6589.  
  6590.    This should be treated in the same way as the space character (ASCII
  6591.    character code 32 decimal), except that the user agent should never
  6592.    break lines at this point. It is useful when you want to ensure that
  6593.    neigbouring words always stay together and don't get split across
  6594.    lines.
  6595.  
  6596. Hyphen
  6597.  
  6598.    *   Interpreted as a hyphen glyph in all contexts.
  6599.  
  6600.    *   Interpreted as a potential word space by hyphenation engine.
  6601.  
  6602.    The character entities &endash; and &emdash; denote dash marks with
  6603.    the same widths as the   and   entities respectively.
  6604.  
  6605. ------------------------------------------------------------------------------
  6606. Control Characters
  6607.  
  6608.    Control characters are non-printable characters that are typically
  6609.    used for communication and device control, as format effectors, and
  6610.    as information separators.
  6611.  
  6612.    In SGML applications, the use of control characters is limited in
  6613.    order to maximize the chance of sucessful interchange over
  6614.    heterogenous networks and operating systems. In HTML, there are only
  6615.    three control characters which are used. The remaining 55 control
  6616.    characters are shunned and should not appear in an HTML document.
  6617.    The valid control characters and their interpretation are:
  6618.  
  6619. Horizontal Tab (HT - 9 dec)
  6620.  
  6621.    *   Interpreted as a word space in all contexts except <PRE>.
  6622.  
  6623. Dave Raggett                                                          Page 143
  6624. HTML 3.0                                                       28th March 1995
  6625.  
  6626.    *   Within <PRE>, the tab should be interpreted to shift the
  6627.        horizontal column position to the next position which is a
  6628.        multiple of 8 on the same line; that is, col := (col+8) mod 8.
  6629.  
  6630. Line Feed (LF - 10 dec)
  6631.  
  6632.    *   Interpreted as a word space in all contexts except <PRE>.
  6633.  
  6634.    *   Within <PRE>, the tab should be interpreted as a shift to the
  6635.        start of a new line; that is, col := 0; row := row+1
  6636.  
  6637. Carriage Return (CR - 13 dec)
  6638.  
  6639.    *   Interpreted as a word space in all contexts except <PRE>.
  6640.  
  6641.    *   Within <PRE>, the tab should be interpreted as a shift to the
  6642.        start of the line; that is, col := 0;
  6643.  
  6644. ------------------------------------------------------------------------------
  6645. Numeric Character References
  6646.  
  6647.    Any printing character within the 8-bit character encoding of ISO
  6648.    8859/1 (256 character positions) or the 7-bit character encoding of
  6649.    ISO 646 (128 character positions) may be represented within the text
  6650.    of an HTML document by a numeric character reference, e.g. é is
  6651.    a small e with an acute accent. It is recommended that character
  6652.    entity references such as é are used in preference to
  6653.    numberic character references.
  6654.  
  6655. Dave Raggett                                                          Page 144
  6656. HTML 3.0                                                       28th March 1995
  6657.  
  6658. Security Considerations
  6659.  
  6660.    Anchors, embedded images, and all other elements which contain URIs
  6661.    as parameters may cause the URI to be dereferenced. In this case,
  6662.    the security considerations of the URI specification apply.
  6663.  
  6664.    Documents may be constructed whose visible contents mislead the
  6665.    reader to follow a link to unsuitable or offensive material.
  6666.  
  6667.    The MD attribute is useful when authors are concerned that a linked
  6668.    object may be subsequently changed to something other than intended.
  6669.    This attribute is used to specify a cryptographic checksum for the
  6670.    linked object to provide a check on its integrity.
  6671.  
  6672. Dave Raggett                                                          Page 145
  6673. HTML 3.0                                                       28th March 1995
  6674.  
  6675. <!SGML  "ISO 8879:1986"
  6676. --
  6677.         SGML Declaration for HyperText Markup Language (HTML).
  6678.  
  6679. --
  6680.  
  6681. CHARSET
  6682.          BASESET  "ISO 646:1983//CHARSET
  6683.                    International Reference Version
  6684.                    (IRV)//ESC 2/5 4/0"
  6685.          DESCSET  0   9   UNUSED
  6686.                   9   2   9
  6687.                   11  2   UNUSED
  6688.                   13  1   13
  6689.                   14  18  UNUSED
  6690.                   32  95  32
  6691.                   127 1   UNUSED
  6692.      BASESET   "ISO Registration Number 100//CHARSET
  6693.                 ECMA-94 Right Part of
  6694.                 Latin Alphabet Nr. 1//ESC 2/13 4/1"
  6695.  
  6696.          DESCSET  128  32   UNUSED
  6697.                   160  96    32
  6698.  
  6699. CAPACITY        SGMLREF
  6700.                 TOTALCAP        200000
  6701.                 GRPCAP          150000
  6702.  
  6703. SCOPE    DOCUMENT
  6704. SYNTAX
  6705.          SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
  6706.                  17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127
  6707.          BASESET  "ISO 646:1983//CHARSET
  6708.                    International Reference Version
  6709.                    (IRV)//ESC 2/5 4/0"
  6710.          DESCSET  0 128 0
  6711.          FUNCTION
  6712.                   RE          13
  6713.                   RS          10
  6714.                   SPACE       32
  6715.                   TAB SEPCHAR  9
  6716.  
  6717.          NAMING   LCNMSTRT ""
  6718.                   UCNMSTRT ""
  6719.                   LCNMCHAR ".-"
  6720.                   UCNMCHAR ".-"
  6721.                   NAMECASE GENERAL YES
  6722.                            ENTITY  NO
  6723.          DELIM    GENERAL  SGMLREF
  6724.                   SHORTREF SGMLREF
  6725.          NAMES    SGMLREF
  6726.          QUANTITY SGMLREF
  6727.  
  6728. Dave Raggett                                                          Page 146
  6729. HTML 3.0                                                       28th March 1995
  6730.  
  6731.                   ATTSPLEN 2100
  6732.                   LITLEN   1024
  6733.                   NAMELEN  72    -- somewhat arbitrary; taken from
  6734.                                 internet line length conventions --
  6735.                   PILEN    1024
  6736.                   TAGLEN   2100
  6737.                   GRPGTCNT 150
  6738.                   GRPCNT   64
  6739.  
  6740. FEATURES
  6741.   MINIMIZE
  6742.     DATATAG  NO
  6743.     OMITTAG  YES
  6744.     RANK     NO
  6745.     SHORTTAG YES
  6746.   LINK
  6747.     SIMPLE   NO
  6748.     IMPLICIT NO
  6749.     EXPLICIT NO
  6750.   OTHER
  6751.     CONCUR   NO
  6752.     SUBDOC   NO
  6753.     FORMAL   YES
  6754.   APPINFO    "SDA"  -- conforming SGML Document Access application
  6755.                     --
  6756. >
  6757. <!--
  6758.         $Id: html.decl,v 1.1 1995/03/07 05:50:34 connolly Exp $
  6759.  
  6760.         Author: Daniel W. Connolly <connolly@hal.com>
  6761.  
  6762.         See also: http://www.hal.com/%7Econnolly/html-spec
  6763.           http://info.cern.ch/hypertext/WWW/MarkUp/MarkUp.html
  6764.  -->
  6765.  
  6766. Dave Raggett                                                          Page 147
  6767. HTML 3.0                                                       28th March 1995
  6768.  
  6769. Character Entity Set(s)
  6770.  
  6771. This section is undergoing revision ...
  6772.  
  6773.    --In particular, we need to add a more complete list of character
  6774.    entities, e.g. for the characters below decimal 128 and missing
  6775.    codes such as currency signs.
  6776.  
  6777.    The following entity names are used in HTML, always prefixed by
  6778.    ampersand (&) and followed by a semicolon as shown.
  6779.  
  6780.    They represent particular graphic characters which have special
  6781.    meanings in places in the markup, or may not be part of the
  6782.    character set available to the writer.
  6783.  
  6784. ------------------------------------------------------------------------------
  6785. Numeric and Special Graphic Entities
  6786.  
  6787.    The following table lists each of the supported characters specified
  6788.    in the Numeric and Special Graphic entity set, along with its name,
  6789.    syntax for use, and description.
  6790.  
  6791.    This list is derived from "ISO 8879:1986//ENTITIES Numeric and
  6792.    Special Graphic//EN" however HTML does not provide support for the
  6793.    entire entity set. Only the entities listed below are supported.
  6794.  
  6795.    Name             Syntax       Description
  6796.    lt              <        Less than sign
  6797.    gt              >        Greater than sign
  6798.    amp             &       Ampersand
  6799.    quot            "      Double quote sign
  6800.  
  6801. ------------------------------------------------------------------------------
  6802. ISO Latin 1 Character Entities
  6803.  
  6804.    The following table lists each of the characters specified in the
  6805.    Added Latin 1 entity set, along with its name, syntax for use, and
  6806.    description.
  6807.  
  6808.    This list is derived from "ISO 8879:1986//ENTITIES Added Latin
  6809.    1//EN", and HTML does provide support for the entire entity set.
  6810.  
  6811.    Name            Syntax      Description
  6812.    Aacute          Á    Capital A, acute accent
  6813.    Agrave          À    Capital A, grave accent
  6814.    Acirc           Â     Capital A, circumflex accent
  6815.    Atilde          Ã    Capital A, tilde
  6816.    Aring           Å     Capital A, ring
  6817.    Auml            Ä      Capital A, dieresis or umlaut mark
  6818.    AElig           Æ     Capital AE dipthong (ligature)
  6819.  
  6820. Dave Raggett                                                          Page 148
  6821. HTML 3.0                                                       28th March 1995
  6822.  
  6823.    Ccedil          Ç    Capital C, cedilla
  6824.    Eacute          É    Capital E, acute accent
  6825.    Egrave          È    Capital E, grave accent
  6826.    Ecirc           Ê     Capital E, circumflex accent
  6827.    Euml            Ë      Capital E, dieresis or umlaut mark
  6828.    Iacute          Í    Capital I, acute accent
  6829.    Igrave          Ì    Capital I, grave accent
  6830.    Icirc           Î     Capital I, circumflex accent
  6831.    Iuml            Ï      Capital I, dieresis or umlaut mark
  6832.    ETH             Ð       Capital Eth, Icelandic
  6833.    Ntilde          Ñ    Capital N, tilde
  6834.    Oacute          Ó    Capital O, acute accent
  6835.    Ograve          Ò    Capital O, grave accent
  6836.    Ocirc           Ô     Capital O, circumflex accent
  6837.    Otilde          Õ    Capital O, tilde
  6838.    Ouml            Ö      Capital O, dieresis or umlaut mark
  6839.    Oslash          Ø    Capital O, slash
  6840.    Uacute          Ú    Capital U, acute accent
  6841.    Ugrave          Ù    Capital U, grave accent
  6842.    Ucirc           Û     Capital U, circumflex accent
  6843.    Uuml            Ü      Capital U, dieresis or umlaut mark
  6844.    Yacute          Ý    Capital Y, acute accent
  6845.  
  6846.    THORN           Þ     Capital THORN, Icelandic
  6847.    szlig           ß     Small sharp s, German (sz ligature)
  6848.  
  6849.    aacute          á    Small a, acute accent
  6850.    agrave          à    Small a, grave accent
  6851.    acirc           â     Small a, circumflex accent
  6852.    atilde          ã    Small a, tilde
  6853.    atilde          ã    Small a, tilde
  6854.    auml            ä      Small a, dieresis or umlaut mark
  6855.    aelig           æ     Small ae dipthong (ligature)
  6856.    ccedil          ç    Small c, cedilla
  6857.    eacute          é    Small e, acute accent
  6858.    egrave          è    Small e, grave accent
  6859.    ecirc           ê     Small e, circumflex accent
  6860.    euml            ë      Small e, dieresis or umlaut mark
  6861.    iacute          í    Small i, acute accent
  6862.    igrave          ì    Small i, grave accent
  6863.    icirc           î     Small i, circumflex accent
  6864.    iuml            ï      Small i, dieresis or umlaut mark
  6865.    eth             ð       Small eth, Icelandic
  6866.    ntilde          ñ    Small n, tilde
  6867.    oacute          ó    Small o, acute accent
  6868.    ograve          ò    Small o, grave accent
  6869.    ocirc           ô     Small o, circumflex accent
  6870.    otilde          õ    Small o, tilde
  6871.    ouml            ö      Small o, dieresis or umlaut mark
  6872.    oslash          ø    Small o, slash
  6873.    uacute          ú    Small u, acute accent
  6874.    ugrave          ù    Small u, grave accent
  6875.    ucirc           û     Small u, circumflex accent
  6876.  
  6877. Dave Raggett                                                          Page 149
  6878. HTML 3.0                                                       28th March 1995
  6879.  
  6880.    uuml            ü      Small u, dieresis or umlaut mark
  6881.    yacute          ý    Small y, acute accent
  6882.    thorn           þ     Small thorn, Icelandic
  6883.    yuml            ÿ      Small y, dieresis or umlaut mark
  6884.  
  6885. ------------------------------------------------------------------------------
  6886. Numerical Character References
  6887.  
  6888.    This list, sorted numerically, is derived from the ISO 8859/1 8-bit
  6889.    single-byte coded graphic character set:
  6890.  
  6891.    Reference           Description
  6892.    �-         Unused
  6893.                    Horizontal tab
  6894.                    Line feed
  6895.     -         Unused
  6896.  
  6897.    &32;                Space
  6898.    &33;                Exclamation mark
  6899.    &34;                Quotation mark
  6900.    &35;                Number sign
  6901.    &36;                Dollar sign
  6902.    &37;                Percent sign
  6903.    &38;                Ampersand
  6904.    &39;                Apostrophe
  6905.    &40;                Left parenthesis
  6906.    &41;                Right parenthesis
  6907.    &42;                Asterisk
  6908.    &43;                Plus sign
  6909.    &44;                Comma
  6910.    &45;                Hyphen
  6911.    &46;                Period (fullstop)
  6912.    &47;                Solidus (slash)
  6913.  
  6914.    0 - 9       Digits 0-9
  6915.  
  6916.    &58;                Colon
  6917.    &59;                Semi-colon
  6918.    &60;                Less than
  6919.    &61;                Equals aign
  6920.    &62;                Greater than
  6921.    &63;                Question mark
  6922.    &64;                Commercial at
  6923.  
  6924.    A-Z         Letters A-Z
  6925.  
  6926.    &91;                Left square bracket
  6927.    &92;                Reverse solidus (backslash)
  6928.    &93;                Right square bracket
  6929.    &95;                Horizontal bar
  6930.    &96;                Acute accent
  6931.  
  6932. Dave Raggett                                                          Page 150
  6933. HTML 3.0                                                       28th March 1995
  6934.  
  6935.    a-z        Letters a-z
  6936.  
  6937.    &123;               Left curly brace
  6938.    &124;               Vertical bar
  6939.    &125;               Right curly brace
  6940.    &126;               Tilde
  6941.  
  6942.    -        Unused
  6943.  
  6944.    &161;               Inverted exclamation
  6945.    &162;               Cent sign
  6946.    &163;               Pound sterling
  6947.    &164;               General currency sign
  6948.    &165;               Yen sign
  6949.    &166;               Broken vertical bar
  6950.    &167;               Section sign
  6951.    &168;               Umlaut (dieresis)
  6952.    &169;               Copyright
  6953.    &170;               Feminine ordinal
  6954.    &171;               Left angle quote, guillemotleft
  6955.    &172;               Not sign
  6956.    &173;               Soft hyphen
  6957.    &174;               Registered trademark
  6958.    &175;               Macron accent
  6959.    &176;               Degree sign
  6960.    &177;               Plus or minus
  6961.    &178;               Superscript two
  6962.    &179;               Superscript three
  6963.    &180;               Acute accent
  6964.    &181;               Micro sign
  6965.    &182;               Paragraph sign
  6966.    &183;               Middle dot
  6967.    &184;               Cedilla
  6968.    &185;               Superscript one
  6969.    &186;               Masculine ordinal
  6970.    &187;               Right angle quote, guillemotright
  6971.    &188;               Fraction one-fourth
  6972.    &189;               Fraction one-half
  6973.    &190;               Fraction three-fourths
  6974.    &191;               Inverted question mark
  6975.  
  6976.    &192;               Capital A, acute accent
  6977.    &193;               Capital A, grave accent
  6978.    &194;               Capital A, circumflex accent
  6979.    &195;               Capital A, tilde
  6980.    &196;               Capital A, ring
  6981.    &197;               Capital A, dieresis or umlaut mark
  6982.    &198;               Capital AE dipthong (ligature)
  6983.    &199;               Capital C, cedilla
  6984.    &200;               Capital E, acute accent
  6985.    &201;               Capital E, grave accent
  6986.    &202;               Capital E, circumflex accent
  6987.  
  6988. Dave Raggett                                                          Page 151
  6989. HTML 3.0                                                       28th March 1995
  6990.  
  6991.    &203;               Capital E, dieresis or umlaut mark
  6992.    &204;               Capital I, acute accent
  6993.    &205;               Capital I, grave accent
  6994.    &206;               Capital I, circumflex accent
  6995.    &207;               Capital I, dieresis or umlaut mark
  6996.    &208;               Capital Eth, Icelandic
  6997.    &209;               Capital N, tilde
  6998.    &210;               Capital O, acute accent
  6999.    &211;               Capital O, grave accent
  7000.    &212;               Capital O, circumflex accent
  7001.    &213;               Capital O, tilde
  7002.    &214;               Capital O, dieresis or umlaut mark
  7003.  
  7004.    &215;               Multiply sign
  7005.  
  7006.    &216;               Capital O, slash
  7007.    &217;               Capital U, acute accent
  7008.    &218;               Capital U, grave accent
  7009.    &219;               Capital U, circumflex accent
  7010.    &220;               Capital U, dieresis or umlaut mark
  7011.    &221;               Capital Y, acute accent
  7012.  
  7013.    &222;               Capital THORN, Icelandic
  7014.    &223;               Small sharp s, German (sz ligature)
  7015.  
  7016.    &224;               Small a, acute accent
  7017.    &225;               Small a, grave accent
  7018.    &226;               Small a, circumflex accent
  7019.    &227;               Small a, tilde
  7020.    &228;               Small a, tilde
  7021.    &229;               Small a, dieresis or umlaut mark
  7022.    &230;               Small ae dipthong (ligature)
  7023.    &231;               Small c, cedilla
  7024.    &232;               Small e, acute accent
  7025.    &233;               Small e, grave accent
  7026.    &234;               Small e, circumflex accent
  7027.    &235;               Small e, dieresis or umlaut mark
  7028.    &236;               Small i, acute accent
  7029.    &237;               Small i, grave accent
  7030.    &238;               Small i, circumflex accent
  7031.    &239;               Small i, dieresis or umlaut mark
  7032.    &240;               Small eth, Icelandic
  7033.    &241;               Small n, tilde
  7034.    &242;               Small o, acute accent
  7035.    &243;               Small o, grave accent
  7036.    &244;               Small o, circumflex accent
  7037.    &245;               Small o, tilde
  7038.    &246;               Small o, dieresis or umlaut mark
  7039.  
  7040.    &247;               Division sign
  7041.  
  7042.    &248;               Small o, slash
  7043.    &249;               Small u, acute accent
  7044.  
  7045. Dave Raggett                                                          Page 152
  7046. HTML 3.0                                                       28th March 1995
  7047.  
  7048.    &250;               Small u, grave accent
  7049.    &251;               Small u, circumflex accent
  7050.    &252;               Small u, dieresis or umlaut mark
  7051.    &253;               Small y, acute accent
  7052.    &254;               Small thorn, Icelandic
  7053.    &255;               Small y, dieresis or umlaut mark
  7054.  
  7055. Dave Raggett                                                          Page 153
  7056. HTML 3.0                                                       28th March 1995
  7057.  
  7058. Math Entities
  7059.  
  7060. This list is in a very preliminary stage ...
  7061.  
  7062.    --I hope to use ISO names where practical, and want to ensure that
  7063.    names are meaningful, rather than cryptic. The character codes for
  7064.    common fonts will be included, although which fonts to include is
  7065.    still under review.--
  7066.  
  7067.    The following sets out the range of math symbols supported by HTML
  7068.    math, giving the HTML entity name, the corresponding LaTeX command
  7069.    name and a short description. Character codes are given in
  7070.    hexadecimal when available for the Postscript symbol set and HP's
  7071.    math-8 symbol set.
  7072.  
  7073. Continuation dots - ellipsis
  7074.  
  7075.    &ldots;     \ldots    three dots on the baseline
  7076.    &cdots;     \cdots    three dots on same level as a minus sign
  7077.    &vdots;     \vdots    three vertical dots
  7078.    &ddots;     \ddots    diagonal dots (top left to bottom right)
  7079.    &dotfill;   \dotfill  like cdots but fills column in an array
  7080.  
  7081. Added Spacing
  7082.  
  7083.         \,        thin space
  7084.    &sp;        \:        medium space
  7085.           \;        thick space
  7086.    &quad;      \quad     huge space
  7087.  
  7088. Lower case Greek Letters
  7089.  
  7090.                                          PS-Symbol Math-8
  7091.    α     \alpha        alpha          61      61
  7092.    β      \beta         beta           62      62
  7093.    γ     \gamma        gamma          67      63
  7094.    δ     \delta        delta          64      64
  7095.    ε   \epsilon      epsilon        --      65
  7096.    &vepsilon;  \varepsilon   var epsilon    65      3B
  7097.    ζ      \zeta         zeta           7A      66
  7098.    η       \eta          eta            68      67
  7099.    θ     \theta        theta          71      68
  7100.    &vtheta;    \vartheta     var theta      --      79
  7101.    ι      \iota         iota           69      69
  7102.    κ     \kappa        kappa          6B      6A
  7103.    λ    \lambda       lambda         6C      6B
  7104.    μ        \mu           mu             6D      6C
  7105.    ν        \nu           nu             6E      6D
  7106.    ξ        \xi           xi             78      6E
  7107.  
  7108. Dave Raggett                                                          Page 154
  7109. HTML 3.0                                                       28th March 1995
  7110.  
  7111.    ο   ....          omicron        6F      6F
  7112.    π        \pi           pi             70      70
  7113.    ϖ     \varpi        var pi         76      7B
  7114.    ρ       \rho          rho            72      71
  7115.    ϱ    \varrho       var rho        --      --
  7116.    σ     \sigma        sigma          73      72
  7117.    &vsigma;    \varsigma     var sigma      56      5B
  7118.    τ       \tau          tau            74      73
  7119.    υ   \upsilon      upsilon        75      74
  7120.    φ       \phi          phi            66      75
  7121.    ϕ    \varphi       var phi        6A      7A
  7122.    χ       \chi          chi            63      76
  7123.    ψ       \psi          psi            79      77
  7124.    ω     \omega        omega          77      78
  7125.  
  7126.    Note: LaTeX uses the latin letter o for omicron.
  7127.  
  7128. Dave Raggett                                                          Page 155
  7129. HTML 3.0                                                       28th March 1995
  7130.  
  7131. <!-- Standard ISO/WWW icons courtesy of Bert Bos and Kevin Hughes
  7132.  
  7133.     These can be used in place of default symbols for list items or as
  7134.     part of hypertext links, and save time needed to download images.
  7135.     Browsers can define them in terms of library images or as URL/URNs.
  7136. -->
  7137.  
  7138. <!ENTITY ftp SDATA "ftp" -- ftp server -->
  7139. <!ENTITY gopher SDATA "gopher" -- gopher server -->
  7140. <!ENTITY telnet SDATA "telnet" -- telnet connection -->
  7141. <!ENTITY archive SDATA "archive" -- archive server -->
  7142. <!ENTITY filing.cabinet SDATA "filing.cabinet" -- filing cabinet -->
  7143. <!ENTITY folder SDATA "folder" -- folder or directory -->
  7144. <!ENTITY fixed.disk SDATA "fixed.disk" -- fixed media drive -->
  7145. <!ENTITY disk.drive SDATA "disk.drive" -- removeable media drive -->
  7146. <!ENTITY document SDATA "document" -- unspecified document type -->
  7147. <!ENTITY unknown.document SDATA "unknown.document" -- unrecognised document type -->
  7148. <!ENTITY text.document SDATA "text.document" -- text/plain, text.html etc. -->
  7149. <!ENTITY binary.document SDATA "binary.document" -- binary data -->
  7150. <!ENTITY binhex.document SDATA "binhex.document" -- binhex format -->
  7151. <!ENTITY audio SDATA "audio" -- audio sequence -->
  7152. <!ENTITY film SDATA "film" -- film or animation, such as an MPEG movie -->
  7153. <!ENTITY image SDATA "image" -- photograph, drawing or graphic of any kind -->
  7154. <!ENTITY map SDATA "map" -- geographical or a schematic map -->
  7155. <!ENTITY form SDATA "form" -- fill-out form -->
  7156. <!ENTITY mail SDATA "mail" -- email messages -->
  7157. <!ENTITY parent SDATA "parent" -- parent of current document -->
  7158. <!ENTITY next SDATA "next" -- next document in current sequence -->
  7159. <!ENTITY previous SDATA "previous" -- previous document in current sequence -->
  7160. <!ENTITY home SDATA "home" -- home document -->
  7161. <!ENTITY toc SDATA "toc" -- table of contents -->
  7162. <!ENTITY glossary SDATA "glossary" -- glossary of terms etc. -->
  7163. <!ENTITY index SDATA "index" -- searchable index -->
  7164. <!ENTITY summary SDATA "summary" -- summary -->
  7165.  
  7166. <!ENTITY calculator SDATA "calculator" -- A calculator -->
  7167. <!ENTITY caution SDATA "caution" -- Warnign sign -->
  7168. <!ENTITY clock SDATA "clock" -- A clock -->
  7169. <!ENTITY compressed.document SDATA "compressed.document">
  7170. <!ENTITY diskette SDATA "diskette" -- A diskette -->
  7171. <!ENTITY display SDATA "display" -- A computer screen -->
  7172. <!ENTITY fax SDATA "fax" -- A fax machine -->
  7173. <!ENTITY mail.in SDATA "mail.in" -- mail-in tray -->
  7174. <!ENTITY mail.out SDATA "mail.out" -- mail-out tray -->
  7175. <!ENTITY mouse SDATA "mouse" -- mouse/pointing device -->
  7176. <!ENTITY printer SDATA "printer" -- hardcopy device -->
  7177. <!ENTITY tn3270 SDATA "tn3270" --tn3270 terminal session -->
  7178. <!ENTITY trash SDATA "trash" -- waste paper basket -->
  7179. <!ENTITY uuencoded.document SDATA "uuencoded.document" -- uuencoded data -->
  7180.  
  7181. Dave Raggett                                                          Page 156
  7182. HTML 3.0                                                       28th March 1995
  7183.  
  7184. <!--
  7185.         html3.dtd
  7186.  
  7187.         Document Type Definition for the HyperText Markup Language (HTML DTD)
  7188.  
  7189.         Draft: Fri 24-Mar-95 09:46:33
  7190.  
  7191.         Author: Dave Raggett <dsr@hplb.hpl.hp.com>
  7192.  
  7193.         W3O is developing a testbed browser to provide practical
  7194.         experience with HTML 3.0 before it becomes a standard.
  7195.         See:  http://www.w3.org/hypertext/WWW/Arena/
  7196.  
  7197.         This is an open process and comments are welcomed on the
  7198.         www-html mailing list.
  7199.  
  7200.         Please use the following MIME content type:
  7201.  
  7202.                 Content-Type: text/html; version=3.0
  7203.  
  7204.         This will allow clients to distinguish HTML 3.0 from current
  7205.         HTML documents. This is most easily achieved by saving
  7206.         files with the extension ".html3" or ".ht3" so that servers
  7207.         can easily distinguish these files from HTML 2.0 files.
  7208.  
  7209.         The entity HTML.Recommended can be used to give a more rigorous
  7210.         version of the DTD suitable for use with SGML authoring tools.
  7211.         The default version of the DTD offers a laxer interpretation,
  7212.         e.g. allowing authors to omit leading <P> elements. You can
  7213.         switch on the more rigorous version of the DTD by including
  7214.         the following at the start of your HTML document.
  7215.  
  7216.          <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN//"
  7217.             [ <!ENTITY % HTML.Recommended "INCLUDE"> ] >
  7218.  
  7219.         Design Objectives:
  7220.  
  7221.         o   Backwards compatibility with 2.0
  7222.  
  7223.         o   Tightening up HTML.Recommended and
  7224.             moving more things to HTML.Deprecated
  7225.  
  7226.         o   Keep HTML - simple don't compete with CALS
  7227.  
  7228.         o   Make it practical for people to edit HTML 3.0
  7229.             documents directly, i.e. avoid long names.
  7230.  
  7231.         o   Tables, figures and math from HTML+
  7232.             with tweaks based on recent experience
  7233.  
  7234.         o   Client-side event handling for figures
  7235.             and graphical form selection menus
  7236.  
  7237. Dave Raggett                                                          Page 157
  7238. HTML 3.0                                                       28th March 1995
  7239.  
  7240.         o   Add limited presentational controls with
  7241.             a view to use of linked style sheets
  7242.             (style overrides are supported)
  7243.  
  7244.         o   Compatibility with ICADD as per Yuri's suggestions
  7245.  
  7246.         HTML 3.0 relies on linked style info to give authors
  7247.         control over the appearence of documents. Such info is
  7248.         placed in a linked style sheet, or as overrides in the
  7249.         HTML document head, using the STYLE element. The generic
  7250.         CLASS attribute can be used to subclass elements when
  7251.         you want to use a different style from normal, e.g. you
  7252.         might use <h2 class=bigcaps> for headers with enlarged
  7253.         capital letters. Note that the class attribute has a
  7254.         wider scope than just style changes, e.g. browsers could
  7255.         provide the means for searching through documents,
  7256.         restricting search according to element class values.
  7257.  
  7258.         The DTD contains a small number of attributes for direct
  7259.         control of basic alignment parameters; column widths for
  7260.         tables; support for custom bullets, sequence numbering for
  7261.         lists and headers; and text flow. These attributes offer
  7262.         control over appearence which would be inconvenient to
  7263.         express exclusively via associated style sheets.
  7264.  
  7265.         The MD attribute for each hypertext or inline link specifies a
  7266.         message digest such as MD5 for the linked object and is needed
  7267.         to ensure someone hasn't tampered with a linked document.
  7268.  
  7269.   History:
  7270.  
  7271.     24th March '95
  7272.  
  7273.     Changed ROLE->CLASS for HTML element
  7274.     Added dummy elements to fix problem with mixed
  7275.     content models for BODY, BLOCKQUOTE/BQ and FIG
  7276.     Dropped audio fields from FORMs
  7277.     Reinstated MIN/MAX for range fields
  7278.     Reinstated DISABLED and ERROR attributes for fields
  7279.  
  7280.     22nd March '95
  7281.  
  7282.     Changed from em to en units. The latter
  7283.     is a typographical unit = half point size
  7284.     Merged NEEDS into CLEAR for control of textflow
  7285.  
  7286.     21st March '95
  7287.  
  7288.     Added REL=Banner to LINK element
  7289.     Added BANNER element in place of <DIV CLASS=BANNER>
  7290.     Added RANGE and SPOT elements
  7291.     Added FN in place of <NOTE ROLE=FOOTNOTE>
  7292.  
  7293. Dave Raggett                                                          Page 158
  7294. HTML 3.0                                                       28th March 1995
  7295.  
  7296.     Changed ROLE->CLASS for NOTE element
  7297.  
  7298.     17th March '95
  7299.  
  7300.     Fixed bug in PRE content model
  7301.     Changed external references to omit trailling //
  7302.     Dropped <!DOCTYPE HTML [ ... ]> wrapper to avoid problems
  7303.       with "real" sgml parsers
  7304.     Added NOFLOW attribute to FIG and TABLE
  7305.     Fixed typo in IMG ALIGN attribute
  7306.     Made SELECT match IMG for graphic attributes
  7307.     Added decimal alignment for tabs and table cells
  7308.     Added ALIGN attribute to TEXTAREA for parity
  7309.       with IMG and INPUT, including ALIGN=LEFT etc.
  7310.  
  7311.     13th March '95
  7312.  
  7313.     Dropped MARK tag on advice from SGML Open
  7314.     Allowed spaces in table colspec attribute
  7315.     Changed ARRAY element
  7316.     Added CHOOSE tag to BOX element
  7317.     Cleaned up PRE content model
  7318.     Obsoleted tags incompatible with SGML
  7319.  
  7320.     6th March '95
  7321.  
  7322.     Added several tags to MATH: %mathface, %mathvec
  7323.     and improved ROOT, with new SQRT convience tag
  7324.  
  7325.     1st March '95
  7326.  
  7327.     Dropped align attribute from BR element
  7328.     Added indent attribute to TAB
  7329.     Added optional CREDIT to end of BQ
  7330.     Changed FIG to %body.content to allow headers
  7331.  
  7332.     22nd February '95
  7333.  
  7334.     Added align attribute, and dropped before, after, center and right
  7335.       attributes to clean up TAB element
  7336.     Added INS and DEL for legal documents
  7337.     Added CREDIT to end of FIG element
  7338.     Dropped FN in favor of <NOTE ROLE=FootNote>
  7339.  
  7340.     9th Feburuary '95
  7341.  
  7342.     Dropped base attribute mechanism for scoping relative URLs
  7343.     Dropped nofold attribute for disabling whitespace folding
  7344.     Dropped border width attributes for FIG (-> style sheet)
  7345.     Dropped delims attribute from math BOX element
  7346.     Dropped stylistic attributes from OL such as inherit (-> stylesheet)
  7347.     Added baseline to list of valign attribute values for tables.
  7348.     Added DIV element for generic container class and static banners
  7349.  
  7350. Dave Raggett                                                          Page 159
  7351. HTML 3.0                                                       28th March 1995
  7352.  
  7353.     Added MARK element for marked range class
  7354.     Added closed set of LINK REL values for toolbars
  7355.     Added numbering attributes to headers
  7356.     Added bullet attributes to headers
  7357.     Added TERM element to math for style sheet control of term rendering
  7358.     Changed to imagemap=URI for server-side event handling for FIG/OVERLAY
  7359.     Changed delimiter attributes for math arrays
  7360.     Changed ROOT element for maths to allow an arbitrary radix
  7361.     Simplified numbering attributes for ordered lists
  7362.     Simplified STYLE element to leave binding to style language
  7363. -->
  7364.  
  7365. <!ENTITY % HTML.Version
  7366.         "-//IETF//DTD HTML 3.0//EN"
  7367.  
  7368.         -- Typical usage:
  7369.  
  7370.             <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
  7371.             <html>
  7372.             ...
  7373.             </html>
  7374.         --
  7375.         >
  7376.  
  7377. <!--================== Flags for Marked Sections ==========================-->
  7378.  
  7379. <!ENTITY % HTML.Recommended "IGNORE"
  7380.         -- Certain features of the language are necessary for compatibility
  7381.            with widespread usage, but they may compromise the structural
  7382.            integrity of a document. This feature test entity enables
  7383.            a more prescriptive document type definition that eliminates
  7384.            the above features.
  7385.         -->
  7386.  
  7387. <![ %HTML.Recommended [
  7388.         <!ENTITY % HTML.Deprecated "IGNORE">
  7389. ]]>
  7390.  
  7391. <!ENTITY % HTML.Deprecated "INCLUDE"
  7392.         -- Certain features of the language are necessary for compatibility
  7393.            with earlier versions of the specification, but they tend
  7394.            to be used an implemented inconsistently, and their use is
  7395.            deprecated. This feature test entity enables a document type
  7396.            definition that eliminates these features.
  7397.         -->
  7398.  
  7399. <!ENTITY % HTML.Obsoleted "IGNORE"
  7400.         -- The XMP, LISTING and PLAINTEXT tags are incompatible with SGML
  7401.            and derive from very early versions of HTML. They require non-
  7402.            standard parsers and will cause problems for processing
  7403.            documents with standard SGML tools.
  7404.         -->
  7405.  
  7406. Dave Raggett                                                          Page 160
  7407. HTML 3.0                                                       28th March 1995
  7408.  
  7409. <!--================== Imported Names =====================================-->
  7410.  
  7411. <!ENTITY % Content-Type "CDATA"
  7412.         -- meaning a MIME content type, as per RFC1521
  7413.         -->
  7414.  
  7415. <!ENTITY % HTTP-Method "GET | POST"
  7416.         -- as per HTTP specification
  7417.         -->
  7418.  
  7419. <!ENTITY % URI "CDATA"
  7420.         -- The term URI means a CDATA attribute
  7421.            whose value is a Uniform Resource Identifier,
  7422.            as defined by
  7423.         "Uniform Resource Identifiers" by Tim Berners-Lee
  7424.         aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
  7425.         aka RFC 1630
  7426.  
  7427.         Note that CDATA attributes are limited by the LITLEN
  7428.         capacity (1024 in the current version of html.decl),
  7429.         so that URIs in HTML have a bounded length.
  7430.  
  7431.         -->
  7432.  
  7433. <!ENTITY % REAL "CDATA" -- real numbers (not in SGML) -->
  7434.  
  7435. <!ENTITY % SHAPE "CDATA"
  7436.     -- Shape of hotzone in image.
  7437.  
  7438.        All coordinates are assumed to be numbers in the range 0 to 1
  7439.        and interpreted as fractional width/height and measured from
  7440.        the top left corner of the associated image.
  7441.  
  7442.        The attribute value is a string taking one of the following forms:
  7443.  
  7444.                 "default"
  7445.  
  7446.        Used to define a default link for the figure background.
  7447.  
  7448.             "circle x, y, r"
  7449.  
  7450.        (x, y) define the center and r the radius.
  7451.  
  7452.             "rect x, y, w, h"
  7453.  
  7454.        (x, y) defines upper left, and w and h the width and height.
  7455.  
  7456.             "polygon x1, y1, x2, y2, ..."
  7457.  
  7458.        Given n pairs of x, y coordinates, the polygon is closed by a
  7459.        line linking the n'th point to the first. Intersecting polygons
  7460.        use the non-zero winding number rule to determine if a point lies
  7461.        inside the polygon.I
  7462.  
  7463. Dave Raggett                                                          Page 161
  7464. HTML 3.0                                                       28th March 1995
  7465.  
  7466.     --
  7467. >
  7468.  
  7469. <!-- 3.0 Parameter Entities -->
  7470.  
  7471. <!ENTITY % heading "H1|H2|H3|H4|H5|H6">
  7472.  
  7473. <![ %HTML.Obsoleted [
  7474.     <!ENTITY % preformatted "PRE | XMP | LISTING">
  7475. ]]>
  7476.  
  7477. <![ %HTML.Deprecated [
  7478.     <!ENTITY % list "UL | OL | DIR | MENU">
  7479.     <!ENTITY % blockquote "BLOCKQUOTE | BQ">
  7480. ]]>
  7481.  
  7482. <!ENTITY % list "UL | OL">
  7483.  
  7484. <!ENTITY % blockquote "BQ">
  7485.  
  7486. <!ENTITY % preformatted "PRE">
  7487.  
  7488. <!-- The CLASS attribute is used to subclass HTML elements for
  7489.      rendering purposes, when used with style sheets, e.g. DSSSL lite -->
  7490.  
  7491. <!ENTITY % attrs  -- common attributes for elements --
  7492.         'id       ID      #IMPLIED -- as target for hrefs (link ends) --
  7493.          lang     CDATA   "en.us"  -- ISO language, country code --
  7494.          class    NAMES   #IMPLIED -- for subclassing elements --'>
  7495.  
  7496. <!-- SGML standard forces different NAMES for all attribute values
  7497.      in the same element, regardless of the attribute name! As a result
  7498.      CDATA is used for CLEAR attribute to avoid clash with ALIGN attribute.-->
  7499.  
  7500. <!--
  7501. When text flows around a figure or table in the margin, you sometimes want
  7502. to start an element like a header, paragraph or list below the figure rather
  7503. than alongside it. The CLEAR attribute allows you to move down unconditionally:
  7504.  
  7505.         clear=left          move down until left margin is clear
  7506.         clear=right         move down until right margin is clear
  7507.         clear=all           move down until both margins are clear
  7508.  
  7509. Alternatively, you can decide to place the element alongside the figure just
  7510. so long as there is enough room. The minimum width needed is specified as:
  7511.  
  7512.         clear="40 en"       move down until there is at least 40 en units free
  7513.         clear="100 pixels"  move down until there is at least 100 pixels free
  7514.  
  7515. The style sheet (or browser defaults) may provide default minimum widths for
  7516. each class of block-like elements.
  7517.  
  7518. Dave Raggett                                                          Page 162
  7519. HTML 3.0                                                       28th March 1995
  7520.  
  7521. -->
  7522.  
  7523. <!ENTITY % needs -- Attributes for controlling text flow. Used in headers
  7524.                     and other elements to guarantee sufficient room --
  7525.         'clear  CDATA #IMPLIED'>
  7526.  
  7527. <!--
  7528.     The following attribute may be included where ever a URL can be given:
  7529.  
  7530.     md      message digest e.g. md="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ"
  7531.             where the digest is base64 encoded and preceded by a prefix
  7532.             denoting the algorithm (in this case MD5).
  7533. -->
  7534.  
  7535. <!ENTITY % url.link -- Attributes associated with URL based links --
  7536.         "md     CDATA  #IMPLIED  -- message digest for linked object --">
  7537.  
  7538. <!--================ Character mnemonic entities ==========================-->
  7539.  
  7540. <!-- The HTML list of Latin-1 entities includes the full range
  7541.      of characters in widely available Latin-1 fonts, and as such
  7542.      is a mixture of ISOlat1 and other ISO publishing symbols -->
  7543.  
  7544. <!ENTITY % HTMLlat1 PUBLIC
  7545.   "-//IETF//ENTITIES Added Latin 1 for HTML//EN">
  7546. %HTMLlat1;
  7547.  
  7548. <!--================ Entities for special symbols =========================-->
  7549.  
  7550. <!ENTITY emsp   SDATA "[emsp  ]" -- em space -->
  7551. <!ENTITY ensp   SDATA "[ensp  ]" -- en space (1/2-em) -->
  7552. <!ENTITY mdash  SDATA "[ndash ]" -- em dash -->
  7553. <!ENTITY ndash  SDATA "[ndash ]" -- en dash (1/2-em) -->
  7554. <!ENTITY nbsp   SDATA "[nbsp  ]" -- non breaking space -->
  7555. <!ENTITY shy    SDATA "[shy   ]" -- soft hyphen -->
  7556. <!ENTITY copy   SDATA "[copy  ]" -- copyright sign -->
  7557. <!ENTITY trade  SDATA "[trade ]" -- trade mark sign -->
  7558. <!ENTITY reg    SDATA "[reg   ]" -- registered sign -->
  7559.  
  7560. <!--================ Entities for standard icons ==========================-->
  7561.  
  7562. <!-- a range of standard icons such as &folder; for use
  7563.      in speeding up display of directory listings etc. -->
  7564.  
  7565. <!ENTITY % HTMLicons PUBLIC
  7566.   "-//IETF//ENTITIES icons for HTML//EN">
  7567. %HTMLicons;
  7568.  
  7569. <!--================ Entities for math symbols ============================-->
  7570.  
  7571. <!-- ISO subset chosen for use with the widely available Adobe math font -->
  7572.  
  7573. <!ENTITY % HTMLmath PUBLIC
  7574.  
  7575. Dave Raggett                                                          Page 163
  7576. HTML 3.0                                                       28th March 1995
  7577.  
  7578.   "-//IETF//ENTITIES Math and Greek for HTML//EN">
  7579. %HTMLmath;
  7580.  
  7581. <!--=================== Text Markup =======================================-->
  7582.  
  7583. <!ENTITY % font " U | S | TT | I | BIG | SMALL">
  7584.  
  7585. <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE">
  7586.  
  7587. <!ENTITY % misc "Q | LANG | AU | DFN | PERSON | ACRONYM | ABBREV | INS | DEL">
  7588.  
  7589. <!ENTITY % special "TAB | MATH | A | IMG | BR">
  7590.  
  7591. <!ENTITY % notmath "%font | %phrase | %special | %misc">
  7592.  
  7593. <!ENTITY % text "#PCDATA | SUB | SUP | B | %notmath">
  7594.  
  7595. <!ENTITY % pre.exclusion "TAB|MATH|IMG|BIG|SMALL|SUB|SUP">
  7596.  
  7597. <!ELEMENT (%font|B|%phrase|%misc) - - (%text)+>
  7598. <!ATTLIST (%font|B|%phrase|%misc) %attrs;>
  7599.  
  7600. <!-- Subscripts and superscripts. The ALIGN attribute is only used for math -->
  7601.  
  7602. <!ELEMENT (SUB|SUP) - - (%text)+>
  7603. <!ATTLIST (SUB|SUP)
  7604.         %attrs;
  7605.         align (left|center|right) #IMPLIED
  7606.         >
  7607.  
  7608. <!-- Forced line break -->
  7609.  
  7610. <!ELEMENT BR    - O EMPTY>
  7611. <!ATTLIST BR
  7612.         %attrs;
  7613.         %needs; -- for control of text flow --
  7614.         >
  7615.  
  7616. <!-- Named left, center and right tab stops (independent of '\t' char) -->
  7617.  
  7618. <!ELEMENT TAB - O EMPTY>
  7619. <!ATTLIST TAB
  7620.         id       ID       #IMPLIED  -- defines named tab stop --
  7621.         indent   NUMBER   0         -- en units before new tab stop --
  7622.         to       IDREF    #IMPLIED  -- jump to named tab stop --
  7623.         align   (left|center|right|decimal) left
  7624.         dp      CDATA     #IMPLIED  -- decimal point e.g. dp="," --
  7625.         >
  7626.  
  7627. <!--================== Link Markup ========================================-->
  7628.  
  7629. <!--
  7630.  
  7631. Dave Raggett                                                          Page 164
  7632. HTML 3.0                                                       28th March 1995
  7633.  
  7634.      With HTML 3.0 you can use ID attributes on most elements for named
  7635.      link ends. The use of the NAME attribute on anchors is deprecated.
  7636.  
  7637.      Do we want to support arbitrary elements for link starts? This would
  7638.      involve adding HREF and related attributes to most elements.
  7639. -->
  7640.  
  7641. <![ %HTML.Deprecated [
  7642.     <!ENTITY % linkName "name CDATA #IMPLIED -- named link end --">
  7643. ]]>
  7644.  
  7645. <!ENTITY % linkName "">
  7646.  
  7647. <!ENTITY % ToolBar "home|toc|index|glossary|copyright|
  7648.                     up|previous|next|help|bookmark"
  7649.  
  7650.         -- LINK RELationship values which are used to create toolbar
  7651.            buttons or menu items for navigation, where toc stands
  7652.            for table of contents and bookmark provides for an open
  7653.            ended set of links, i.e. you can use multiple bookmarks
  7654.            for key entry points. Use the optional TITLE attribute
  7655.            to override default names.
  7656.         -->
  7657.  
  7658. <!ENTITY % linkType "NAME"
  7659.         -- A definitive list will be specified at a later date.
  7660.  
  7661.            They are used
  7662.  
  7663.                 a) by stylesheets to control how collections of
  7664.                    html nodes are rendered into printed documents
  7665.  
  7666.                 b) for document specific toolbars/menus when used
  7667.                    with the LINK element in document head:
  7668.  
  7669.                     "home|toc|index|glossary|copyright|
  7670.                            up|previous|next|help|bookmark"
  7671.  
  7672.                    where toc stands for table of contents and
  7673.                    bookmark provides for an open ended set of links,
  7674.                    i.e. you can use several bookmarks for key entry
  7675.                    points. Use the optional TITLE attribute to
  7676.                    override default names.
  7677.  
  7678.                 c) for hypertext paths or guided tours,
  7679.                    with REL=NODE and REL=PATH.
  7680.  
  7681.                 d) to make a link to a style sheet, e.g. rel=stylesheet
  7682.                    (used only with the LINK element).
  7683.  
  7684.                 e) to make a link to a separate banner, e.g. rel=banner
  7685.                    (used only with the LINK element).
  7686.  
  7687. Dave Raggett                                                          Page 165
  7688. HTML 3.0                                                       28th March 1995
  7689.  
  7690.         -->
  7691.  
  7692. <!ENTITY % linkExtraAttributes -- URN moved to %url.link --
  7693.        "rel %linkType #IMPLIED -- forward relationship type --
  7694.         rev %linkType #IMPLIED -- reversed relationship type
  7695.                                   to referent data --
  7696.         title   CDATA #IMPLIED -- advisory only --
  7697.         methods NAMES #IMPLIED -- supported public methods of the object:
  7698.                                         TEXTSEARCH, GET, HEAD, ... --
  7699.         ">
  7700.  
  7701. <![ %HTML.Deprecated [
  7702.     <!ENTITY % A.content "(%heading|%text)+">
  7703. ]]>
  7704.  
  7705. <!ENTITY % A.content   "(%text)+">
  7706.  
  7707. <!ELEMENT A     - - %A.content -(A)>
  7708.  
  7709. <!ATTLIST A
  7710.         %attrs;
  7711.         href   %URI;  #IMPLIED
  7712.         %url.link;    -- standard link attributes --
  7713.         %linkName;     -- name attribute is deprecated; use ID instead --
  7714.         shape %SHAPE; #IMPLIED -- for shaped hotzones in FIGs --
  7715.         %linkExtraAttributes;
  7716.         >
  7717.  
  7718. <!--=================== Images ============================================-->
  7719.  
  7720. <!-- Desired widths are used for negotiating image size
  7721.      with the module responsible for painting the image.
  7722.      align=left or right cause image to float to margin
  7723.      and for subsequent text to wrap around image -->
  7724.  
  7725. <!ELEMENT IMG    - O EMPTY --  Embedded image -->
  7726. <!ATTLIST IMG
  7727.         %attrs;
  7728.         src  %URI;  #REQUIRED  -- URI of image to embed --
  7729.         %url.link;             -- standard link attributes --
  7730.         alt CDATA   #IMPLIED   -- for display in place of image --
  7731.         align  (top|middle|bottom|left|right) top -- relative to baseline
  7732.         --         width  NUMBER #IMPLIED -- desired width in en's or pixels --
  7733.         height NUMBER #IMPLIED -- desired height in en's or pixels --
  7734.         units  (en|pixels) pixels -- units for width and height --
  7735.         ismap (ismap) #IMPLIED -- pass clicks to server --
  7736.         >
  7737.  
  7738. <!--=================== Paragraphs=========================================-->
  7739.  
  7740. <!ELEMENT P     - O (%text)+>
  7741. <!ATTLIST P
  7742.  
  7743. Dave Raggett                                                          Page 166
  7744. HTML 3.0                                                       28th March 1995
  7745.  
  7746.         %attrs;
  7747.         align  (left|center|right|justify) #IMPLIED
  7748.         %needs; -- for control of text flow --
  7749.         nowrap (nowrap) #IMPLIED -- disable wordwrap --
  7750.         >
  7751.  
  7752. <!--=================== Headings, Titles, Sections ========================-->
  7753.  
  7754. <!ELEMENT HR    - O EMPTY -- customizable horizontal rule -->
  7755. <!ATTLIST HR
  7756.         %attrs;
  7757.         src     %URI;   #IMPLIED -- URI of custom rule graphic --
  7758.         %url.link;               -- standard link attributes --
  7759.         %needs; -- for control of text flow --
  7760.         >
  7761.  
  7762. <!--
  7763.   Headers can be numbered, although this is a matter for style sheets.
  7764.   The style sheet controls the numbering style:
  7765.  
  7766.      a) whether the parent numbering is inherited, e.g.  5.i.c
  7767.         where 5 is the current sequence number for H1 headers, and
  7768.         1 is the number for H2 headers and 3 for H3 headers.
  7769.  
  7770.      b) what style is used for current sequence number
  7771.         e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
  7772.         or a numbering scheme appropriate for the current language
  7773.  
  7774.   The skip attribute is used to skip over sequence numbers for items
  7775.   which have been left out of the list, e.g. skip=3 advances the
  7776.   sequence number past 3 omitted items. The seqnum sets the sequence
  7777.   number to a specified value. Note that the style sheet may take
  7778.   advantage of the sequence number for higher level headers.
  7779.  
  7780.   The dingbat or src attributes may be used to specify a bullet like
  7781.   image to be placed adjacent to the header. Defining this in the
  7782.   header element simplifies the document markup and avoids the need
  7783.   to use the clear or needs attribute in the following element to
  7784.   prevent it flowing around this image.
  7785. -->
  7786.  
  7787. <!ELEMENT ( %heading )  - -  (%text;)+>
  7788. <!ATTLIST ( %heading )
  7789.         %attrs;
  7790.         align  (left|center|right|justify) #IMPLIED
  7791.         %needs; -- for control of text flow --
  7792.         seqnum   NUMBER   #IMPLIED  -- starting sequence number --
  7793.         skip     NUMBER   0         -- skip seq nums for missing items --
  7794.         dingbat  ENTITY   #IMPLIED  -- dingbat entity from HTMLicons --
  7795.         src      (%URI;)  #IMPLIED  -- bullet defined by graphic --
  7796.         %url.link;                  -- standard link attributes --
  7797.         nowrap   (nowrap)  #IMPLIED -- disable wordwrap --
  7798.         >
  7799.  
  7800. Dave Raggett                                                          Page 167
  7801. HTML 3.0                                                       28th March 1995
  7802.  
  7803. <!ELEMENT TITLE - -  (#PCDATA)
  7804.           -- The TITLE element is not considered part of the flow of text.
  7805.              It should be displayed, for example as the page header or
  7806.              window title.
  7807.           -->
  7808.  
  7809. <!--=================== Text Flows ========================================-->
  7810.  
  7811. <!ENTITY % block
  7812.      "P | %list | DL
  7813.         | %preformatted
  7814.         | %blockquote
  7815.         | FORM | ISINDEX | FN
  7816.         | TABLE | FIG | NOTE">
  7817.  
  7818. <!--
  7819.   ((%block)* | (%text)*) would be much nicer as it would avoid the need
  7820.   for a <P> tag when all you want is a few words of text. The problem
  7821.   is that it also prevents: "<LI> <P>some text" since it forbids PCDATA
  7822.   and hence the white space between the <LI> and the <P>.
  7823. -->
  7824.  
  7825. <![ %HTML.Recommended [
  7826.     <!ENTITY % flow "(%block)*">
  7827. ]]>
  7828.  
  7829. <!ENTITY % flow "(%text | %block)*">
  7830.  
  7831. <!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
  7832.  
  7833. <!ATTLIST PRE
  7834.         %attrs;
  7835.         width NUMBER #implied
  7836.         %needs; -- for control of text flow --
  7837.         >
  7838.  
  7839. <![ %HTML.Obsoleted [
  7840.  
  7841. <!ENTITY % literal "CDATA"
  7842.         -- special non-conforming parsing mode where
  7843.            the only markup signal is the end tag
  7844.            in full. This will cause problems for
  7845.            standard SGML tools!
  7846.         -->
  7847.  
  7848. <!ELEMENT XMP - -  %literal>
  7849. <!ELEMENT LISTING - -  %literal>
  7850. <!ELEMENT PLAINTEXT - O %literal>
  7851.  
  7852. ]]>
  7853.  
  7854. <!--=================== Lists =============================================-->
  7855.  
  7856. Dave Raggett                                                          Page 168
  7857. HTML 3.0                                                       28th March 1995
  7858.  
  7859. <!ELEMENT DL    - -  (LH?, (DT|DD)+) -- this is perhaps too lax? -->
  7860. <!ATTLIST DL
  7861.         %attrs;
  7862.         %needs; -- for control of text flow --
  7863.         compact (compact) #IMPLIED -- more compact style --
  7864.         >
  7865.  
  7866. <!ELEMENT DT    - O  (%text)+>
  7867. <!ELEMENT DD    - O  %flow;>
  7868. <!ATTLIST (DT|DD)
  7869.         %attrs;
  7870.         %needs; -- for control of text flow --
  7871.         >
  7872.  
  7873. <!ELEMENT (OL|UL) - -  (LH?, LI+) -- should we allow a list header ? -->
  7874.  
  7875. <!-- style sheet controls numbering style
  7876.     a) whether the parent numbering is inherited, e.g.  5.1.c
  7877.     b) what style is used for current sequence number
  7878.         e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
  7879.         or a numbering scheme for the current language
  7880. -->
  7881. <!ATTLIST OL
  7882.         %attrs;
  7883.         %needs; -- for control of text flow --
  7884.         continue (continue)  #IMPLIED   -- don't restart sequence number --
  7885.         seqnum    NUMBER     #IMPLIED   -- starting sequence number --
  7886.         compact (compact)    #IMPLIED   -- reduced interitem spacing --
  7887.         >
  7888.  
  7889. <!-- Unordered lists:
  7890.  
  7891.     o   single or multicolumn with
  7892.         horizontal or vertical wrapping
  7893.  
  7894.     o   plain or bulletted list items
  7895.  
  7896.     o   bullets can be customised via:
  7897.             - entities (dingbats in HTMLicons)
  7898.             - external graphic via URL
  7899.             - individual attributes on LI tags
  7900. -->
  7901. <!ATTLIST UL
  7902.         %attrs;
  7903.         %needs; -- for control of text flow --
  7904.         wrap (vert|horiz|none) none -- multicolumn list style --
  7905.         plain   (plain)  #IMPLIED   -- suppress bullets --
  7906.         dingbat  ENTITY  #IMPLIED   -- dingbat entity from HTMLicons --
  7907.         src     (%URI;)  #IMPLIED   -- bullet defined by graphic --
  7908.         %url.link;                  -- standard link attributes --
  7909.         compact (compact) #IMPLIED  -- reduced interitem spacing --
  7910.  
  7911. Dave Raggett                                                          Page 169
  7912. HTML 3.0                                                       28th March 1995
  7913.  
  7914.         >
  7915.  
  7916. <!ELEMENT LH - O (%text;)+ -- list header -->
  7917. <!ATTLIST LH %attrs;>
  7918.  
  7919. <!--
  7920.     For unordered lists, you can override the standard bullet with
  7921.     a custom graphic specified via a URI e.g. src="splash.gif" or
  7922.     a reference to one of the HTMLicons graphics e.g. dingbat=folder
  7923.  
  7924.     The skip attribute is used with ordered lists to skip over sequence
  7925.     numbers for items which have been left out of the list, e.g. skip=3
  7926.     advances the sequence number past 3 omitted items.
  7927. -->
  7928.  
  7929. <!ELEMENT LI - O %flow; -- list item -->
  7930. <!ATTLIST LI
  7931.         %attrs;
  7932.         %needs; -- for control of text flow --
  7933.         dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
  7934.         src  (%URI;) #IMPLIED   -- custom bullet graphic --
  7935.         %url.link;              -- standard link attributes --
  7936.         skip NUMBER 0           -- skip seq nums for missing items --
  7937.         >
  7938.  
  7939. <!-- DIR and MENU are now subsumed by UL with type=plain. Use the
  7940.      wrap attribute to control wrapping style for multicolumn lists -->
  7941.  
  7942. <![ %HTML.Deprecated [
  7943.     <!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
  7944.     <!ATTLIST (DIR|MENU)
  7945.         compact (compact) #IMPLIED>
  7946. ]]>
  7947.  
  7948. <!--=================== Document Body =====================================-->
  7949.  
  7950. <![ %HTML.Recommended [
  7951.         <!ENTITY % body.content "(DIV|%heading|%block|HR|ADDRESS)*"
  7952.         -- <h1>Heading</h1>
  7953.            <p>Text ...
  7954.                 is preferred to
  7955.            <h1>Heading</h1>
  7956.            Text ...
  7957.         -->
  7958. ]]>
  7959.  
  7960. <!ENTITY % body.content "(DIV | %heading | %text | %block | HR | ADDRESS)*">
  7961.  
  7962. <!ELEMENT BODY O O  (BANNER?, BODYTEXT) +(SPOT)>
  7963. <!ATTLIST BODY
  7964.         %attrs;
  7965.         background %URI; #IMPLIED  -- texture tile for document background --
  7966.         >
  7967.  
  7968. Dave Raggett                                                          Page 170
  7969. HTML 3.0                                                       28th March 1995
  7970.  
  7971. <!ELEMENT BODYTEXT O O %body.content -- dummy element -->
  7972.  
  7973. <!--
  7974.   The BANNER element is used for a banner section which appears at
  7975.   the top of the window and doesn't scroll with window contents.
  7976.   This can be used for corporate logos, copyright statements and
  7977.   disclaimers, as well as customized navigation/search controls.
  7978. -->
  7979. <!ELEMENT BANNER - - %body.content>
  7980. <!ATTLIST BANNER %attrs; >
  7981.  
  7982. <!-- SPOT is used to insert IDs at arbitrary places
  7983.      e.g. for end points of a marked range (see RANGE) -->
  7984. <!ELEMENT SPOT - O EMPTY>
  7985. <!ATTLIST SPOT id ID #REQUIRED>
  7986.  
  7987. <!ELEMENT (%blockquote) - - (BODYTEXT, CREDIT?)>
  7988. <!ATTLIST (%blockquote)
  7989.         %attrs;
  7990.         %needs; -- for control of text flow --
  7991.         nowrap   (nowrap)  #IMPLIED -- disable wordwrap --
  7992.         >
  7993.  
  7994. <!ENTITY % address.content "((%text;)* | P*)">
  7995.  
  7996. <!ELEMENT ADDRESS - - %address.content>
  7997. <!ATTLIST ADDRESS
  7998.         %attrs;
  7999.         %needs; -- for control of text flow --
  8000.         >
  8001.  
  8002. <!--
  8003.   DIV can be used with the CLASS attribute to represent different
  8004.   kinds of container, e.g. chapter, section, abstract, appendix.
  8005. -->
  8006.  
  8007. <!ELEMENT DIV - - %body.content>
  8008. <!ATTLIST DIV
  8009.         %attrs;
  8010.         %needs; -- for control of text flow --
  8011.         align   (left|center|right) left -- alignment of following text --
  8012.         nowrap   (nowrap)  #IMPLIED -- disable wordwrap --
  8013.         >
  8014.  
  8015. <!--================ Forms ===============================================-->
  8016.  
  8017. <!--
  8018.     As HTML 2.0 plus a few extensions:
  8019.  
  8020.         a)  A RANGE control which varies between pair of values
  8021.             specified with the size attribute, e.g. SIZE="1, 10"
  8022.  
  8023. Dave Raggett                                                          Page 171
  8024. HTML 3.0                                                       28th March 1995
  8025.  
  8026.         b)  FILE widget for uploading one or more files to a server
  8027.  
  8028.         c)  SCRIBBLE on image widget that sends the "ink" to the server
  8029.  
  8030.         d)  SUBMIT/RESET buttons can now be customised with an image.
  8031.             This subsumes the IMAGE type which is now deprecated.
  8032.  
  8033.         e)  Graphical SELECTion menus are now supported, using
  8034.             the new SHAPE attribute on OPTION elements.
  8035.  
  8036.     Further extensions are in the pipeline (e.g. table entry,
  8037.     multiple data formats for textarea fields and client-side
  8038.     scripts with custom widgets) but will have to wait until
  8039.     the backlog of implementation work diminishes.
  8040. -->
  8041.  
  8042. <!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
  8043. <!ATTLIST FORM
  8044.         action %URI #REQUIRED -- server-side form handler --
  8045.         method (%HTTP-Method) GET -- see HTTP specification --
  8046.         enctype %Content-Type; "application/x-www-form-urlencoded"
  8047.         script %URI #IMPLIED -- link to client-side script --
  8048.         >
  8049.  
  8050. <![ %HTML.Deprecated [
  8051.     <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
  8052.                    | RESET | RANGE | FILE | SCRIBBLE | HIDDEN | IMAGE)">
  8053. ]]>
  8054.  
  8055. <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
  8056.                    | RESET | RANGE | FILE | SCRIBBLE | HIDDEN)">
  8057.  
  8058. <!ELEMENT INPUT - O EMPTY>
  8059. <!ATTLIST INPUT
  8060.         %attrs;
  8061.         type %InputType TEXT
  8062.         name  NAME  #IMPLIED       -- required for all but submit and reset --
  8063.         value CDATA #IMPLIED       -- required for radio buttons & checkboxes --
  8064.         disabled (disabled) #IMPLIED -- read-only fields --
  8065.         error CDATA #IMPLIED       -- why field is in error --
  8066.         checked (checked) #IMPLIED -- for radio buttons and check boxes --
  8067.         size NUMBER #IMPLIED       -- visible width of TEXT fields --
  8068.         maxlength NUMBER #IMPLIED  -- max number of chars for TEXT fields --
  8069.         min %REAL #IMPLIED         -- lower limit for RANGE fields --
  8070.         max %REAL #IMPLIED         -- upper limit for RANGE fields --
  8071.         accept CDATA #IMPLIED      -- list of MIME types for file fields --
  8072.         src   %URI  #IMPLIED       -- for fields with background images --
  8073.         %url.link;                 -- standard link attributes --
  8074.         align  (top|middle|bottom|left|right) top
  8075.         >
  8076.  
  8077. <!--
  8078.   SRC attribute added for graphical selection menus
  8079.  
  8080. Dave Raggett                                                          Page 172
  8081. HTML 3.0                                                       28th March 1995
  8082.  
  8083.   The WIDTH, HEIGHT and UNITS attributes apply to the
  8084.   image specified by the SRC attribute.
  8085.  -->
  8086.  
  8087. <!ELEMENT SELECT - - (OPTION+) -(INPUT|TEXTAREA|SELECT)>
  8088. <!ATTLIST SELECT
  8089.         %attrs;
  8090.         name CDATA #REQUIRED
  8091.         multiple (multiple) #IMPLIED
  8092.         disabled (disabled) #IMPLIED -- read-only menu --
  8093.         error CDATA #IMPLIED   -- why selections are in error --
  8094.         src  %URI  #IMPLIED    -- for graphical selection menus --
  8095.         %url.link;             -- standard link attributes --
  8096.         width  NUMBER #IMPLIED -- desired width of in en's or pixels --
  8097.         height NUMBER #IMPLIED -- desired height in en's or pixels --
  8098.         units  (en|pixels) pixels -- units for width and height --
  8099.         align  (top|middle|bottom|left|right) top
  8100.         >
  8101.  
  8102. <!ELEMENT OPTION - O (#PCDATA)>
  8103. <!ATTLIST OPTION
  8104.         %attrs;
  8105.         selected (selected) #IMPLIED
  8106.         value  CDATA  #IMPLIED -- default to element content --
  8107.         shape %SHAPE; #IMPLIED -- for graphical selection menus --
  8108.         disabled (disabled) #IMPLIED -- unselectable option --
  8109.         error CDATA #IMPLIED   -- why this choice is in error --
  8110.         >
  8111.  
  8112. <!--
  8113.   Multi-line text input field. align=left or right
  8114.   causes the field to float to margin and for
  8115.   subsequent text to wrap around the field.
  8116. -->
  8117.  
  8118. <!ELEMENT TEXTAREA - - (#PCDATA) -(INPUT|TEXTAREA|SELECT)>
  8119. <!ATTLIST TEXTAREA
  8120.         %attrs;
  8121.         name CDATA #REQUIRED
  8122.         rows NUMBER #REQUIRED
  8123.         cols NUMBER #REQUIRED
  8124.         disabled (disabled) #IMPLIED -- read-only field --
  8125.         error CDATA #IMPLIED         -- why field is in error --
  8126.         align  (top|middle|bottom|left|right) top
  8127.         >
  8128.  
  8129. <!--======================= Captions ======================================-->
  8130.  
  8131. <!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
  8132. <!ATTLIST CAPTION
  8133.         %attrs;
  8134.         align (top|bottom|left|right) #IMPLIED
  8135.         >
  8136.  
  8137. Dave Raggett                                                          Page 173
  8138. HTML 3.0                                                       28th March 1995
  8139.  
  8140. <!--======================= Tables ========================================-->
  8141.  
  8142. <!--
  8143.     Tables and figures can be aligned in several ways:
  8144.  
  8145.     bleedleft   flush left with the left (window) border
  8146.     left        flush left with the left text margin
  8147.     center      centered (text flow is disabled for this mode)
  8148.     right       flush right with the right text margin
  8149.     bleedright  flush right with the right (window) border
  8150.     justify     when applicable the table/figure should stretch
  8151.                 to fill space between the text margins
  8152.  
  8153.     Note: text will flow around the table or figure if the browser
  8154.     judges there is enough room and the alignment is not centered
  8155.     or justified. The table or figure may itself be part of the
  8156.     text flow around some earlier figure. You can in this case use
  8157.     the clear or needs attributes to move the new table or figure
  8158.     down the page beyond the obstructing earlier figure. Similarly,
  8159.     you can use the clear or needs attributes with other elements
  8160.     such as headers and lists to move them further down the page.
  8161. -->
  8162.  
  8163. <!ENTITY % block.align
  8164.         "align  (bleedleft|left|center|right|bleedright|justify) center">
  8165.  
  8166. <!--
  8167.     The HTML 3.0 table model has been chosen for its simplicity
  8168.     and the ease in writing filters from common DTP packages.
  8169.  
  8170.     By default the table is automatically sized according to the
  8171.     cell contents and the current window size. Specifying the columns
  8172.     widths using the colspec attribute allows browsers to start
  8173.     displaying the table without having to wait for last row.
  8174.  
  8175.     The colspec attribute is a list of column widths and alignment
  8176.     specifications. The columns are listed from left to right with
  8177.     a capital letter followed by a number, e.g. COLSPEC="L20 C8 L40".
  8178.     The letter is L for left, C for center, R for right alignment of
  8179.     cell contents. J is for justification, when feasible, otherwise
  8180.     this is treated in the same way as L for left alignment.
  8181.     Column entries are delimited by one or more space characters.
  8182.  
  8183.     The number specifies the width in en's, pixels or as a
  8184.     fractional value of the table width, as according to the
  8185.     associated units attribute. This approach is more compact
  8186.     than used with most SGML table models and chosen to simplify
  8187.     hand entry. The width attribute allows you to specify the
  8188.     width of the table in pixels, en units or as a percentage
  8189.     of the space between the current left and right margins.
  8190.  
  8191.     To assist with rendering to speech, row and column headers
  8192.     can be given short names using the AXIS attribute. The AXES
  8193.  
  8194. Dave Raggett                                                          Page 174
  8195. HTML 3.0                                                       28th March 1995
  8196.  
  8197.     attribute is used to explicitly specify the row and column
  8198.     names for use with each cell. Otherwise browsers can follow
  8199.     up columns and left along rows (right for some languages)
  8200.     to find the corresponding header cells.
  8201.  
  8202.     Table content model: Braille limits the width of tables,
  8203.     placing severe limits on column widths. User agents need
  8204.     to render big cells by moving the content to a note placed
  8205.     before the table. The cell is then rendered as a link to
  8206.     the corresponding note.
  8207.  
  8208.     To assist with formatting tables to paged media, authors
  8209.     can differentiate leading and trailing rows that are to
  8210.     be duplicated when splitting tables across page boundaries.
  8211.     The recommended way is to subclass rows with the CLASS attribute
  8212.     For example: <TR CLASS=Header>, <TR CLASS=Footer> are used for
  8213.     header and footer rows. Paged browsers insert footer rows at
  8214.     the bottom of the current page and header rows at the top of
  8215.     the new page, followed by the remaining body rows.
  8216. -->
  8217.  
  8218. <!ELEMENT TABLE - - (CAPTION?, TR*) -- mixed headers and data -->
  8219. <!ATTLIST TABLE
  8220.         %attrs;
  8221.         %needs; -- for control of text flow --
  8222.         border (border) #IMPLIED -- draw borders --
  8223.         colspec CDATA   #IMPLIED -- column widths and alignment --
  8224.         units  (en|pixels|relative) en -- units for column widths --
  8225.         dp      CDATA   #IMPLIED -- decimal point e.g. dp="," --
  8226.         width NUMBER    #IMPLIED -- absolute or percentage width --
  8227.         %block.align;  -- horizontal alignment --
  8228.         noflow (noflow) #IMPLIED -- noflow around table --
  8229.         nowrap (nowrap) #IMPLIED -- don't wrap words --
  8230.         >
  8231.  
  8232. <!ENTITY % cell "TH | TD">
  8233. <!ENTITY % horiz.align "left|center|right|justify">
  8234. <!ENTITY % vert.align  "top|middle|bottom|baseline">
  8235.  
  8236. <!--
  8237.     Browsers should tolerate an omission of the first <TR>
  8238.     tag as it is implied by the context. Missing trailing
  8239.     <TR>s implied by rowspans should be ignored.
  8240.  
  8241.     The alignment attributes act as defaults for rows
  8242.     overriding the colspec attribute and being in turn
  8243.     overridden by alignment attributes on cell elements.
  8244.     Use valign=baseline when you want to ensure that text
  8245.     in different cells on the same row is aligned on the
  8246.     same baseline regardless of fonts. It only applies
  8247.     when the cells contain a single line of text.
  8248. -->
  8249.  
  8250. Dave Raggett                                                          Page 175
  8251. HTML 3.0                                                       28th March 1995
  8252.  
  8253. <!ELEMENT TR - O (%cell)* -- row container -->
  8254. <!ATTLIST TR
  8255.         %attrs;
  8256.         align  (%horiz.align) #IMPLIED -- horizontal alignment --
  8257.         valign (%vert.align)  top  -- vertical alignment --
  8258.         dp     CDATA     #IMPLIED  -- decimal point e.g. dp="," --
  8259.         nowrap (nowrap)  #IMPLIED  -- don't wrap words --
  8260.         >
  8261.  
  8262. <!--
  8263.     Note that table cells can include nested tables.
  8264.     Missing cells are considered to be empty, while
  8265.     missing rows should be ignored, i.e. if a cell
  8266.     spans a row and there are no further TR elements
  8267.     then the implied row should be ignored.
  8268. -->
  8269.  
  8270. <!ELEMENT (%cell) - O %body.content>
  8271. <!ATTLIST (%cell)
  8272.         %attrs;
  8273.         colspan NUMBER    1      -- columns spanned --
  8274.         rowspan NUMBER    1      -- rows spanned --
  8275.         align  (%horiz.align) #IMPLIED -- horizontal alignment --
  8276.         valign (%vert.align) top -- vertical alignment --
  8277.         dp      CDATA    #IMPLIED  -- decimal point e.g. dp="," --
  8278.         nowrap (nowrap)  #IMPLIED  -- don't wrap words --
  8279.         axis CDATA #IMPLIED -- axis name, defaults to element content --
  8280.         axes CDATA #IMPLIED -- comma separated list of axis names --
  8281.         >
  8282.  
  8283. <!--====================== Figures ========================================-->
  8284.  
  8285. <!--
  8286.   The element contains text for use in non-graphical displays. Note that
  8287.   you can use the shape attribute in anchors to specify hotzones on images.
  8288.   This provides for local processing of pointer clicks and a unified method
  8289.   for dealing with graphical and non-graphical displays.
  8290.  
  8291.   Text is flowed around figures when the figure is left or right aligned.
  8292.   You can request the browser to move down until there is enough room for
  8293.   the next element, see the CLEAR and NEED attributes (in %needs)
  8294.  
  8295.   Figures offer a path towards embedding arbitrary information formats
  8296.   via some kind of OLE/OpenDoc mechanism.
  8297. -->
  8298.  
  8299. <!ELEMENT FIG - - (OVERLAY*, CAPTION?, FIGTEXT, CREDIT?) -(FIG|IMG)>
  8300. <!ATTLIST FIG
  8301.         %attrs;
  8302.         %needs;                  -- for control of text flow --
  8303.         src  %URI;  #REQUIRED    -- URI of document to embed --
  8304.         %url.link;               -- standard link attributes --
  8305.         %block.align;            -- horizontal alignment --
  8306.  
  8307. Dave Raggett                                                          Page 176
  8308. HTML 3.0                                                       28th March 1995
  8309.  
  8310.         noflow (noflow) #IMPLIED -- noflow around figure --
  8311.         width  NUMBER #IMPLIED   -- desired width in units --
  8312.         height NUMBER #IMPLIED   -- desired height in units --
  8313.         units (en|pixels) pixels -- specifies units as en's or pixels --
  8314.         imagemap (%URI) #IMPLIED -- pass background clicks to server --
  8315.         >
  8316.  
  8317. <!ELEMENT FIGTEXT O O %body.content -- dummy element -->
  8318.  
  8319. <!--
  8320.     Figure overlays. When combined with local caching, overlays
  8321.     provide a cheap way of modifying a larger base image sent as
  8322.     part of a previous page.
  8323. -->
  8324.  
  8325. <!ELEMENT OVERLAY - O EMPTY -- image overlay -->
  8326. <!ATTLIST OVERLAY
  8327.         src  %URI;  #REQUIRED    -- URI of image overlay --
  8328.         %url.link;               -- standard link attributes --
  8329.         units (en|pixels) pixels -- specifies units as en's or pixels --
  8330.         x      NUMBER   0        -- offset from left in units --
  8331.         y      NUMBER   0        -- offset from top in units --
  8332.         width  NUMBER #IMPLIED   -- desired width in units --
  8333.         height NUMBER #IMPLIED   -- desired height in units --
  8334.         imagemap (%URI) #IMPLIED -- pass background clicks to server --
  8335.         >
  8336.  
  8337. <!ELEMENT CREDIT - - (%text;)* -- source of image -->
  8338. <!ATTLIST CREDIT
  8339.         %attrs;
  8340.         >
  8341.  
  8342. <!--======================== Notes ========================================-->
  8343.  
  8344. <!--
  8345. The NOTE element is used for admonishments. The CLASS attribute
  8346. is used to differentiate NOTE's, e.g. Note, Caution or Warning.
  8347. -->
  8348.  
  8349. <!ELEMENT NOTE - - %body.content; -- admonishment -->
  8350. <!ATTLIST NOTE
  8351.         %attrs;
  8352.         src %URI;   #IMPLIED  -- URI of custom graphic --
  8353.         %url.link;            -- standard link attributes --
  8354.         %needs; -- for control of text flow --
  8355.         >
  8356.  
  8357. <!--======================== Footnotes ====================================-->
  8358.  
  8359. <!--
  8360. Typically rendered as popup note. These elements are referenced
  8361. by hypertext links specified with the anchor element.
  8362. -->
  8363.  
  8364. Dave Raggett                                                          Page 177
  8365. HTML 3.0                                                       28th March 1995
  8366.  
  8367. <!ELEMENT FN - - %body.content;>
  8368. <!ATTLIST FN %attrs;>
  8369.  
  8370. <!--======================== Math  ========================================-->
  8371.  
  8372. <!-- Use     etc for greater control of spacing. -->
  8373.  
  8374. <!-- Subscripts and Superscripts
  8375.  
  8376.   <SUB> and <SUP> are used for subscripts and superscripts.
  8377.  
  8378.                                           i j
  8379.       X <SUP>i</SUP>Y<SUP>j</SUP>  is   X  Y
  8380.  
  8381.   i.e. the space following the X disambiguates the binding.
  8382.   The align attribute can be used for horizontal alignment,
  8383.   e.g. to explicitly place an index above an element:
  8384.                                               i
  8385.         X<sup align=center>i</sup>  produces  X
  8386.  
  8387. Short references are defined for superscripts, subscripts and boxes
  8388. to save typing when manually editing HTML math, e.g.
  8389.  
  8390.       x^2^    is mapped to   x<sup>2</sup>
  8391.       y_z_    is mapped to   y<sub>z</sub>
  8392.       {a+b}   is mapped to   <box>a + b</box>
  8393.  
  8394. Note that these only apply within the MATH element and can't be
  8395. used in normal text!
  8396. -->
  8397. <!ENTITY REF1   STARTTAG   "SUP">
  8398. <!ENTITY REF2   ENDTAG     "SUP">
  8399. <!ENTITY REF3   STARTTAG   "SUB">
  8400. <!ENTITY REF4   ENDTAG     "SUB">
  8401. <!ENTITY REF5   STARTTAG   "BOX">
  8402. <!ENTITY REF6   ENDTAG     "BOX">
  8403.  
  8404. <!USEMAP MAP1   MATH>
  8405. <!USEMAP MAP2   SUP>
  8406. <!USEMAP MAP3   SUB>
  8407. <!USEMAP MAP4   BOX>
  8408.  
  8409. <!SHORTREF MAP1 "^" REF1
  8410.                 "_" REF3
  8411.                 "{" REF5 >
  8412.  
  8413. <!SHORTREF MAP2 "^" REF2
  8414.                 "_" REF3
  8415.                 "{" REF5 >
  8416.  
  8417. <!SHORTREF MAP3 "_" REF4
  8418.                 "^" REF1
  8419.                 "{" REF5 >
  8420.  
  8421. Dave Raggett                                                          Page 178
  8422. HTML 3.0                                                       28th March 1995
  8423.  
  8424. <!SHORTREF MAP4 "}" REF6
  8425.                 "^" REF1
  8426.                 "_" REF3
  8427.                 "{" REF5 >
  8428.  
  8429. <!--
  8430.  The inclusion of %math and exclusion of %notmath is used here
  8431.  to alter the content model for the B, SUB and SUP elements,
  8432.  to limit them to formulae rather than general text elements.
  8433. -->
  8434.  
  8435. <!ENTITY % mathvec "VEC|BAR|DOT|DDOT|HAT|TILDE" -- common accents -->
  8436. <!ENTITY % mathface "B|T|BT" -- control of font face -->
  8437. <!ENTITY % math "BOX|ABOVE|BELOW|%mathvec|ROOT|SQRT|ARRAY|SUB|SUP|%mathface">
  8438. <!ENTITY % formula "#PCDATA|%math">
  8439.  
  8440. <!ELEMENT MATH - - (#PCDATA)* -(%notmath) +(%math)>
  8441. <!ATTLIST MATH
  8442.         id      ID      #IMPLIED
  8443.         class    NAMES   #IMPLIED -- e.g. class=chem -->
  8444.  
  8445. <!-- The BOX element acts as brackets. Delimiters are optional and
  8446.      stretch to match the height of the box. The OVER element is used
  8447.      when you want a line between numerator and denominator. This line
  8448.      is suppressed with the alternative ATOP element. CHOOSE acts like
  8449.      ATOP but adds enclosing round brackets as a convenience for binomial
  8450.      coefficients. Note the use of { and } as shorthand for <BOX> and
  8451.      </BOX> respectively:
  8452.  
  8453.                            1 + X
  8454.      {1 + X<OVER>Y}  is   _______
  8455.                              Y
  8456.  
  8457.                                  a + b
  8458.      {a + b<ATOP>c - d} is
  8459.                                  c - d
  8460.  
  8461.      The delimiters are represented using the LEFT and RIGHT
  8462.      elements as in:
  8463.  
  8464.      {[<LEFT>x + y<RIGHT>]}   is   [ x + y ]
  8465.      {(<LEFT>a<RIGHT>]}       is   (a]
  8466.      {||<LEFT>a<RIGHT>||}     is   || a ||
  8467.  
  8468.      Use { and } for "{" and "}" respectively as
  8469.      these symbols are used as shorthand for BOX, e.g.
  8470.  
  8471.      {{<LEFT>a+b<RIGHT>}}  is  {a+b}
  8472.  
  8473.      You can stretch definite integrals to match the integrand, e.g.
  8474.  
  8475.      {∫<SUB>a</SUB><SUP>b</SUP><LEFT>{f(x)<over>1+x} dx}
  8476.  
  8477. Dave Raggett                                                          Page 179
  8478. HTML 3.0                                                       28th March 1995
  8479.  
  8480.             b
  8481.             /  f(x)
  8482.             | ----- dx
  8483.             / 1 + x
  8484.             a
  8485.  
  8486.      Note the complex content model for BOX is a work around
  8487.      for the absence of support for infix operators in SGML.
  8488.  
  8489.      You can get oversize delimiters with the SIZE attribute,
  8490.      for example <BOX SIZE=large>(<LEFT>...<RIGHT>)</BOX>
  8491.  
  8492.      Note that the names of common functions are recognized
  8493.      by the parser without the need to use "&" and ";" around
  8494.      them, e.g. int, sum, sin, cos, tan, ...
  8495. -->
  8496.  
  8497. <!ELEMENT BOX - - ((%formula)*, (LEFT, (%formula)*)?,
  8498.                    ((OVER|ATOP|CHOOSE), (%formula)*)?,
  8499.                    (RIGHT, (%formula)*)?)>
  8500. <!ATTLIST BOX
  8501.         size  (normal|medium|large|huge) normal -- oversize delims -->
  8502.  
  8503. <!ELEMENT (OVER|ATOP|CHOOSE|LEFT|RIGHT) - O EMPTY>
  8504.  
  8505. <!-- Horizontal line drawn ABOVE contents
  8506.      The symbol attribute allows authors to supply
  8507.      an entity name for an accent, arrow symbol etc.
  8508.      Generalisation of LaTeX's overline command.
  8509.  
  8510.      e.g. <above sym=ssmile>x</above>
  8511.      places an upwardly turning curve above the "x"
  8512.  -->
  8513.  
  8514. <!ELEMENT ABOVE - - (%formula)+>
  8515. <!ATTLIST ABOVE sym ENTITY #IMPLIED>
  8516.  
  8517. <!-- Horizontal line drawn BELOW contents
  8518.      The symbol attribute allows authors to
  8519.      supply an entity name for an arrow symbol etc.
  8520.      Generalisation of LaTeX's underline command.
  8521.  -->
  8522.  
  8523. <!ELEMENT BELOW - - (%formula)+>
  8524. <!ATTLIST BELOW sym ENTITY #IMPLIED>
  8525.  
  8526. <!-- Convenience tags for common accents:
  8527.      vec, bar, dot, ddot, hat and tilde
  8528. -->
  8529.  
  8530. <!ELEMENT (%mathvec) - - (%formula)+>
  8531.  
  8532. Dave Raggett                                                          Page 180
  8533. HTML 3.0                                                       28th March 1995
  8534.  
  8535. <!--
  8536.   T and BT are used to designate terms which should
  8537.   be rendered in an upright font (& bold face for BT)
  8538. -->
  8539.  
  8540. <!ELEMENT (T|BT) - - (%formula)+>
  8541. <!ATTLIST (T|BT) class NAMES #IMPLIED>
  8542.  
  8543. <!-- Roots  e.g. <ROOT>3<OF>1+x</ROOT> -->
  8544.  
  8545. <!ELEMENT ROOT - - ((%formula)+, OF, (%formula)+)>
  8546. <!ELEMENT OF - O (%formula)* -- what the root applies to -->
  8547.  
  8548. <!ELEMENT SQRT - - (%formula)* -- square root convenience tag -->
  8549.  
  8550. <!-- LaTeX like arrays. The COLDEF attribute specifies
  8551.      a single capital letter for each column determining
  8552.      how the column should be aligned, e.g. coldef="CCC"
  8553.  
  8554.         "L"     left
  8555.         "C"     center
  8556.         "R"     right
  8557.  
  8558.      An optional separator letter can occur between columns
  8559.      and should be one of + - or =, e.g. "C+C+C+C=C".
  8560.      Whitespace within coldef is ignored. By default, the
  8561.      columns are all centered.
  8562.  
  8563.      The ALIGN attribute alters the vertical position of the
  8564.      array as compared with preceding and following expressions.
  8565.  
  8566.      Use LDELIM and RDELIM attributes for delimiter entities.
  8567.      When the LABELS attribute is present, the array is
  8568.      displayed with the first row and the first column as
  8569.      labels displaced from the other elements. In this case,
  8570.      the first element of the first row should normally be
  8571.      left blank.
  8572.  
  8573.      Use &vdots; &cdots; and &ddots; for vertical, horizontal
  8574.      and diagonal ellipsis dots. Use &dotfill; to fill an array
  8575.      cell with horizontal dots (e.g. for a full row).
  8576.      Note &ldots; places the dots on the baseline, while &cdots;
  8577.      places them higher up.
  8578. -->
  8579.  
  8580. <!ELEMENT ARRAY - - (ROW)+>
  8581. <!ATTLIST ARRAY
  8582.         align (top|middle|bottom) middle -- vertical alignment --
  8583.         coldef  CDATA   #IMPLIED  -- column alignment and separator --
  8584.         ldelim  CDATA   #IMPLIED  -- stretchy left delimiter --
  8585.         rdelim  CDATA   #IMPLIED  -- stretchy right delimiter --
  8586.         labels (labels) #IMPLIED  -- TeX's \bordermatrix style -->
  8587.  
  8588. Dave Raggett                                                          Page 181
  8589. HTML 3.0                                                       28th March 1995
  8590.  
  8591. <!ELEMENT ROW - O (ITEM)*>
  8592. <!ELEMENT ITEM - O (%formula)*>
  8593. <!ATTLIST ITEM
  8594.         align   CDATA  #IMPLIED  -- override coldef alignment --
  8595.         colspan NUMBER 1         -- merge columns as per TABLE --
  8596.         rowspan NUMBER 1         -- merge rows as per TABLE -->
  8597.  
  8598. <!--================ Document Head ========================================-->
  8599.  
  8600. <![ %HTML.Deprecated [
  8601.     <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
  8602.                               & META* & LINK* & RANGE* & NEXTID?">
  8603. ]]>
  8604.  
  8605. <!ENTITY % head.nextid "">
  8606.  
  8607. <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
  8608.                               & META* & LINK* & RANGE*">
  8609.  
  8610. <!ELEMENT HEAD O O  (%head.content)>
  8611.  
  8612. <!ELEMENT LINK - O EMPTY>
  8613. <!ATTLIST LINK
  8614.         href %URI #REQUIRED
  8615.         %linkExtraAttributes; >
  8616.  
  8617. <!ELEMENT RANGE - O EMPTY>
  8618. <!ATTLIST RANGE
  8619.         id    ID    #IMPLIED  -- for naming marked range --
  8620.         class NAMES #IMPLIED  -- for subclassing --
  8621.         from  IDREF #REQUIRED -- start of marked range --
  8622.         until IDREF #REQUIRED -- end of marked range --
  8623.         >
  8624.  
  8625. <!ELEMENT ISINDEX - O EMPTY>
  8626. <!ATTLIST ISINDEX
  8627.         href   %URI  #IMPLIED -- server handling queries --
  8628.         prompt CDATA #IMPLIED -- prompt message -->
  8629.  
  8630. <!--
  8631.     The BASE element gives the base URL for
  8632.     dereferencing relative URLs, e.g.
  8633.  
  8634.          <BASE href="http://foo.com/images">
  8635.          ...
  8636.          <IMG SRC="bar.gif">
  8637.  
  8638.     The image is deferenced to
  8639.  
  8640.          http://foo.com/images/bar.gif
  8641. -->
  8642.  
  8643. <!ELEMENT BASE - O EMPTY>
  8644.  
  8645. Dave Raggett                                                          Page 182
  8646. HTML 3.0                                                       28th March 1995
  8647.  
  8648. <!ATTLIST BASE
  8649.         id   ID    #IMPLIED
  8650.         href %URI; #REQUIRED
  8651.         >
  8652.  
  8653. <![ %HTML.Deprecated [
  8654.     <!ELEMENT NEXTID - O EMPTY>
  8655.     <!ATTLIST NEXTID N CDATA #REQUIRED>
  8656. ]]>
  8657.  
  8658. <!ELEMENT META - O EMPTY    -- Generic Metainformation -->
  8659. <!ATTLIST META
  8660.         http-equiv  NAME    #IMPLIED  -- HTTP response header name  --
  8661.         name        NAME    #IMPLIED  -- metainformation name       --
  8662.         content     CDATA   #REQUIRED -- associated information     --
  8663.         >
  8664.  
  8665. <!--
  8666.     A style sheet can be associated with the document using the
  8667.     LINK element, e.g. <LINK rel=style href="housestyle.dsssl">.
  8668.     Style overrides can be placed in the document head using the
  8669.     STYLE element, e.g.
  8670.  
  8671.         <style notation=dsssl-lite>
  8672.            dsss-lite stuff
  8673.         </style>
  8674.  
  8675.     Later on in the document you can use:
  8676.  
  8677.         <h2 class=bigcaps>Header with bigger than normal capitals</h2>
  8678.         <p class=abstract>A paragraph with a unique style of its own
  8679.         ...
  8680.  
  8681.     Statements in the given style notation
  8682.  
  8683.     The tag names, class and id attributes are used in the style sheet
  8684.     notation to describe how to render matching elements.
  8685. -->
  8686.  
  8687. <!ENTITY % style-notations "dsssl-lite | w3c-style">
  8688. <!NOTATION dsssl-lite PUBLIC
  8689.       "ISO/IEC 10179:1995//NOTATION DSSSL Style Language//EN">
  8690.  
  8691. <!NOTATION w3c-style PUBLIC "IETF/RFC nnn/W3C Style Language//EN">
  8692.  
  8693. <!ELEMENT STYLE - O (#PCDATA)>
  8694. <!ATTLIST STYLE
  8695.     notation NOTATION (%style-notations;) #REQUIRED
  8696. >
  8697.  
  8698. <!--================ Document Structure ===================================-->
  8699.  
  8700. <!ENTITY % html.content "HEAD, BODY">
  8701.  
  8702. Dave Raggett                                                          Page 183
  8703. HTML 3.0                                                       28th March 1995
  8704.  
  8705. <!ELEMENT HTML O O  (%html.content)>
  8706. <!ENTITY % version.attr 'VERSION CDATA #FIXED "&HTML.Version;"'>
  8707.  
  8708. <!-- suggested roles are: TOC, DOC, DOCPART, HITLIST, DIALOG -->
  8709.  
  8710. <!ATTLIST HTML
  8711.         %version.attr;       -- report DTD version to application --
  8712.         urn   CDATA #IMPLIED -- universal resource name for this document --
  8713.         class NAMES #IMPLIED -- role of this document, eg table of contents --
  8714.         >
  8715.  
  8716. <!-- The END -->
  8717.  
  8718. Dave Raggett                                                          Page 184
  8719. HTML 3.0                                                       28th March 1995
  8720.  
  8721. Glossary of Terms
  8722.  
  8723. Pasted from HTML 2.0 spec, this is now under revision ...
  8724.  
  8725. ------------------------------------------------------------------------------
  8726.    The HTML specification uses these words with precise meanings:
  8727.  
  8728.    attribute
  8729.        A characteristic quality of an element, other than type or
  8730.        content.
  8731.  
  8732.    browser
  8733.        A tool used to read electronic books.
  8734.  
  8735.    document
  8736.        For the purposes of this standard, an HTML instance.
  8737.  
  8738.    element
  8739.        A component of the hierarchical structure defined by the
  8740.        document type definition; it is identified in a document
  8741.        instance by descriptive markup, usually a start-tag and an
  8742.        end-tag.
  8743.  
  8744.    HTML
  8745.        HyperText Markup Language.
  8746.  
  8747.    HTTP
  8748.        A generic stateless object-oriented protocol, which may be used
  8749.        for many similar tasks by extending the commands, or "methods",
  8750.        used. For example, you might use HTTP for name servers and
  8751.        distributed object-oriented systems, With HTTP, the negotiation
  8752.        of data representation allows systems to be built independent of
  8753.        the development of new representations. For more information
  8754.        see:  http://www.w3.org/hypertext/WWW/Protocols/Overview.html
  8755.  
  8756.    markup
  8757.        Text added to the data of a document to convey information about
  8758.        it. There are four different kinds of markup: descriptive markup
  8759.        (tags), references, markup declarations, and processing
  8760.  
  8761. Dave Raggett                                                          Page 185
  8762. HTML 3.0                                                       28th March 1995
  8763.  
  8764.        instructions.
  8765.  
  8766.    MIME
  8767.        Multipurpose Internet Mail Extensions as defined in Mechanisms
  8768.        for Specifying and Describing the Format of Internet Message
  8769.        Bodies, 09/23/1993. (Pages=81) (Format=.txt, .ps) (Obsoletes
  8770.        RFC1341) (Updated by RFC1590).
  8771.  
  8772.    representation
  8773.        The encoding of information for interchange. For example, HTML
  8774.        is a representation of hypertext.
  8775.  
  8776.    rendering
  8777.        Formatting and presenting information to human readers.
  8778.  
  8779.    SGML
  8780.        Standard Generalized Markup Language as defined in ISO
  8781.        8879:1986, Information Processing Text and Office Systems.
  8782.  
  8783.    SGMLS
  8784.        An SGML parser by James Clark, jjc@jclark.com, derived from the
  8785.        ARCSGML parser materials which were written by Charles F.
  8786.        Goldfarb. The source is available at
  8787.        ftp.ifi.uio.no/pub/SGML/SGMLS.
  8788.  
  8789.    tag
  8790.        Descriptive markup. There are two kinds of tags; start-tags and
  8791.        end-tags.
  8792.  
  8793.    URI
  8794.        Universal Resource Identifiers. Available by anonymous FTP as
  8795.        Postscript (www.w3.org/pub/www/doc/url.ps) or text
  8796.        (www.w3.org/pub/www/doc/url.txt)
  8797.  
  8798.    W3
  8799.        The World-Wide Web, a global information initiative. For
  8800.        bootstrap information, telnet www.w3.org or find documents at
  8801.  
  8802. Dave Raggett                                                          Page 186
  8803. HTML 3.0                                                       28th March 1995
  8804.  
  8805.        ftp://www.w3.org/pub/www/doc
  8806.  
  8807. Dave Raggett                                                          Page 187
  8808. HTML 3.0                                                       28th March 1995
  8809.  
  8810. References
  8811.  
  8812. Under revision ..
  8813.  
  8814. ------------------------------------------------------------------------------
  8815.    The HTML specification cites these works:
  8816.  
  8817.    HTTP
  8818.        HTTP: A Protocol for Networked Information. This document is
  8819.        available at  http://www.w3.org/WWW/Protocols/HTTP/HTTP2.html.
  8820.  
  8821.    MIME
  8822.        N. Borenstein, N. Freed, MIME (Multipurpose Internet Mail
  8823.        Extensions) Part One: Mechanisms for Specifying and Describing
  8824.        the Format of Internet Message Bodies, 09/23/1993. (Pages=81)
  8825.        (Format=.txt, .ps) (Obsoletes RFC1341) (Updated by RFC1590).
  8826.  
  8827.    SGML
  8828.        ISO 8879:1986, Information Processing Text and Office Systems
  8829.        Standard Generalized Markup Language (SGML).
  8830.  
  8831.    SGMLS
  8832.        An SGML parser by James Clark, jjc@jclark.com, derived from the
  8833.        ARCSGML parser materials which were written by Charles F.
  8834.        Goldfarb. The source is available at
  8835.        ftp.ifi.uio.no/pub/SGML/SGMLS.
  8836.  
  8837.    URI
  8838.        Universal Resource Identifiers. RFCxxx. Available by anonymous
  8839.        FTP as Postscript (info.cern.ch/pub/www/doc/url.ps) or text
  8840.        (info.cern.ch/pub/www/doc/url.txt)
  8841.  
  8842.    W3
  8843.        The World-Wide Web , a global information initiative. For
  8844.        bootstrap information, telnet info.cern.ch or find documents by
  8845.        ftp://info.cern.ch/pub/www/doc.
  8846.  
  8847. Dave Raggett                                                          Page 188
  8848. HTML 3.0                                                       28th March 1995
  8849.  
  8850. Acknowledgments
  8851.  
  8852. Pasted from HTML 2.0 spec, this section is under revision ...
  8853.  
  8854. ------------------------------------------------------------------------------
  8855.    The HTML document type was designed by Tim Berners-Lee at CERN as
  8856.    part of the 1990 World-Wide Web project. In 1992, Dan Connolly wrote
  8857.    the HTML Document Type Definition (DTD) and a brief HTML
  8858.    specification.
  8859.  
  8860.    Since 1993, a wide variety of Internet participants have contributed
  8861.    to the evolution of HTML. NCSA Mosaic played a particularly
  8862.    important role in establishing HTML. Mosaic pioneered the addition
  8863.    of in-line images, image maps, nested lists and fill-out forms
  8864.    (derived from work on HTML+). Minor variations in the way extensions
  8865.    were supported by different browsers eventually led to the setting
  8866.    up of the HTML working group. The HTML 2.0 specification sets out a
  8867.    definitive standard for HTML, formalizing the de facto situation
  8868.    during 1994.
  8869.  
  8870.    HTML+ was the result of my work on possible directions for extending
  8871.    HTML to meet the needs of information providers, e.g. to support
  8872.    forms, tables, text flow around figures and math. This work has now
  8873.    culminated in the current HTML 3.0 specification, which adds a range
  8874.    of important new features to HTML while preserving simplicity and
  8875.    backwards compatibility with existing documents.
  8876.  
  8877.    I would like to express my special thanks to members of the Internet
  8878.    community on the www-talk, www-html and html-wg mailing lists; to
  8879.    people who have written to me in person, and to members of the
  8880.    SGML-Open who have been very supportive of the Web initiative.
  8881.    Thanks also to Hewlett Packard for funding my work on HTML.
  8882.  
  8883.    Particular thanks are due to:
  8884.  
  8885.    *   Terry Allen; O'Reilly & Associates; terry@ora.com
  8886.  
  8887.    *   Marc Andreessen; Netscape Communications Corp;
  8888.        marca@netscape.com
  8889.  
  8890.    *   Eric Bina; Netscape Communications Corp; ebina@netscape.com
  8891.  
  8892.    *   Paul Burchard; The Geometry Center, University of Minnesota;
  8893.        burchard@geom.umn.edu
  8894.  
  8895.    *   James Clark; jjc@jclark.com
  8896.  
  8897.    *   Daniel W. Connolly; HaL Computer Systems; connolly@hal.com
  8898.  
  8899.    *   Stephen DeRose; EBT; ??? steve@ebt.com
  8900.  
  8901.    *   Roy Fielding; University of California, Irvine;
  8902.        fielding@ics.uci.edu
  8903.  
  8904. Dave Raggett                                                          Page 189
  8905. HTML 3.0                                                       28th March 1995
  8906.  
  8907.    *   Jay Glicksman; Enterprise Integration Technology; jay@eit.com
  8908.  
  8909.    *   Eduardo Gutentag; Sun Microsystems; eduardo@Eng.Sun.com
  8910.  
  8911.    *   Bill Hefley; Software Engineering Institute, Carnegie Mellon
  8912.        University; weh@sei.cmu.edu
  8913.  
  8914.    *   Chung-Jen Ho; Xerox Corporation; cho@xsoft.xerox.com
  8915.  
  8916.    *   Mike Knezovich; Spyglass, Inc.; mike@spyglass.com
  8917.  
  8918.    *   Tim Berners-Lee; CERN; timbl@info.cern.ch
  8919.  
  8920.    *   Tom Magliery; NCSA; mag@ncsa.uiuc.edu
  8921.  
  8922.    *   Murray Maloney; SCO Canada; murray@sco.com
  8923.  
  8924.    *   Larry Masinter; Xerox Palo Alto Research Center;
  8925.        masinter@parc.xerox.com
  8926.  
  8927.    *   Karen Olson Muldrow; HaL Computer Systems; karen@hal.com
  8928.  
  8929.    *   Bill Perry, Spry, Inc., wmperry@spry.com
  8930.  
  8931.    *   E. Corprew Reed; Cold Spring Harbor Laboratory; corp@cshl.org
  8932.  
  8933.    *   Yuri Rubinsky; SoftQuad, Inc.; yuri@sq.com
  8934.  
  8935.    *   Eric Schieler; Spyglass, Inc.; eschieler@spyglass.com
  8936.  
  8937.    *   Eric Severson; Avalanche, Inc.; ??? severson@avalanche.com
  8938.  
  8939.    *   Eric W. Sink; Spyglass, Inc.; eric@spyglass.com
  8940.  
  8941.    *   Stuart Weibel; OCLC Office of Research; weibel@oclc.org
  8942.  
  8943.    *   Chris Wilson; Spry, Inc.; cwilson@spry.com
  8944.  
  8945.    Dave Raggett <dsr@w3.org>, February 1995.
  8946.  
  8947. Dave Raggett                                                          Page 190
  8948.